Trích xuất văn bản từ mọi PDF,
trong trình duyệt.
Lấy ra một lớp văn bản sạch từ bất kỳ PDF nào — đoạn văn được giữ nguyên, đa trang, UTF-8. Việc trích xuất diễn ra trong trình duyệt, nên tệp không bao giờ rời khỏi thiết bị.
Tự xác minh: mở DevTools → tab Network → thả một tệp vào. Quan sát không có lượt tải lên nào diễn ra.
Ba bước. PDF của bạn không bao giờ rời khỏi tab này.
Thả PDF của bạn
Chọn tệp bạn muốn trích xuất văn bản. Tệp được nạp vào bộ nhớ trình duyệt, không phải máy chủ.
Chúng tôi đọc lớp văn bản
pdf.js duyệt từng trang, sắp xếp các phần tử theo tọa độ Y và tái tạo dấu ngắt đoạn ở đúng vị trí.
Sao chép hoặc tải .txt
Nhận văn bản thuần UTF-8 sạch. Sao chép vào clipboard hoặc lưu thành .txt — tùy bạn.
Khi bạn muốn chữ chứ không phải PDF
Lý do để rút chữ ra khỏi PDF gần như luôn xoay quanh một việc: đưa các từ tới nơi mà PDF không vào được. Bạn muốn dán một câu trích dẫn vào email mà không phải kéo PDF làm tệp đính kèm. Bạn nạp một tài liệu dài cho trợ lý AI vốn chỉ nhận văn bản thuần. Bạn muốn grep một báo cáo 200 trang để tìm một cụm và tìm kiếm trong trình đọc đang giấu mất gì đó. Bạn dịch một hợp đồng và công cụ dịch thuật cần nguồn ở dạng tệp phẳng. Bạn đưa một bản thảo đã được dàn trang từ PDF trở lại trình soạn thảo. Trong tất cả các trường hợp này, lớp vỏ là thứ cản đường — chữ vẫn ổn, chỉ là kẹt trong một bố cục khó ráp lại.
Đầu ra ở đây chính là điều đó: văn bản thuần, một tệp .txt lớn, theo cùng thứ tự PDF được đọc. Không định dạng, không phông, không hình, không bảng-vẫn-là-bảng. Việc cần làm là giải phóng các từ.
«Trích xuất» thực sự làm gì
PDF chứa hai loại «văn bản». Văn bản thật — ký tự được vẽ bằng phông và được PDF đánh dấu là chữ — nằm ở lớp văn bản. Lớp đó công cụ đọc trực tiếp. Loại còn lại là văn bản chỉ tồn tại dưới dạng pixel: bất cứ thứ gì được quét, chụp ảnh hay screenshot trước khi đưa vào PDF. Những ký tự đó là hình của chữ, không phải chữ, và không trình trích xuất nào nhìn thấy chúng như văn bản nếu không có OCR. Ở đây không có bước OCR.
Hai phép thử nhanh cho biết bạn đang có loại PDF nào. Mở nó trong bất kỳ trình đọc nào, nhấn và kéo chuột qua một đoạn: nếu chữ được chọn sạch sẽ, có lớp văn bản và việc trích xuất sẽ chạy. Nếu con trỏ vẽ một hình chữ nhật và không có gì được chọn, trang là hình ảnh và phải qua OCR (ở công cụ khác) trước để bộ trích xuất có cái để đọc.
Ngắt dòng và đoạn văn ra như thế nào
PDF không lưu đoạn văn. Bên trong, một trang là một túi các mảnh chữ kèm vị trí — không có siêu dữ liệu nào nói «kết thúc đoạn ở đây». Văn bản thuần dễ đọc mà không có ngắt thì không tồn tại, nên công cụ suy ra từ khoảng cách dọc: khoảng nhỏ giữa các dòng thành một lần ngắt, khoảng lớn hơn (kiểu nhà thiết kế chừa giữa các đoạn) thành dòng trống. Các trường hợp thường gặp ra đúng: thân văn bản, tiêu đề, danh sách. Khi nhà thiết kế dùng khoảng cách bất thường cho mục đích khác, công cụ không đoán được và những chỗ đó có thể cần chỉnh tay nhẹ.
Trong đầu ra, các trang được tách bằng một dòng trống. Nếu bạn không muốn dấu phân trang nào, dùng tìm-và-thay thế ngắt đôi thành ngắt đơn để bỏ chúng đi.
Cái gì không sống sót qua trích xuất
- Đậm, nghiêng, phông, màu, căn lề. Văn bản thuần là phẳng. Nếu cần giữ định dạng, xem pdf-to-word.
- Bảng. Các ô trở thành văn bản thuần theo thứ tự đọc — thường là dòng-theo-dòng, hay kèm khoảng cách lóng cóng. Bảng phải vẫn là bảng thuộc về pdf-to-excel.
- Hình ảnh và sơ đồ. Cái gì trong PDF không phải văn bản sẽ không xuất hiện trong văn bản. Để rút hình riêng, xem pdf-to-jpg.
- Tiêu đề và chân trang. Nếu bản gốc lặp lại «Mật — trang X / Y» ở mỗi trang, văn bản trích cũng vậy. Một tìm-và-thay loại bỏ chúng trong vài giây.
- Từ bị cắt bằng dấu nối ở cuối dòng. Một từ vỡ bằng dấu nối ra dạng
cái-\ngìchứ không phảicáigì. Nếu điều này quan trọng cho tìm kiếm hay kiểm tra chính tả về sau, regex-\n→ trống sửa được. - Bố cục nhiều cột có thể đan vào nhau. Bài báo khoa học hai cột có thể ra với câu từ cột trái và cột phải xen kẽ. Tài liệu một cột — phần lớn báo cáo, hợp đồng, sách — không bị ảnh hưởng. Nếu kết quả đan-cột không dùng được, sạch hơn là mở PDF trong công cụ tôn trọng thứ tự cột rồi trích xuất lại.
Vài ghi chú thực tế
- Nếu PDF có mật khẩu, cho qua unlock-pdf trước. PDF mã hóa không thể mở để trích xuất văn bản.
- Với PDF rất lớn (hàng trăm MB, hàng ngàn trang) trích xuất vẫn chạy trong trình duyệt của bạn. Trên máy tính để bàn hiếm khi là vấn đề; trên điện thoại với một bản quét 500 trang, trần là bộ nhớ trình duyệt. Khi đó: dùng máy bàn.
- Đầu ra là UTF-8. Kirin, Hy Lạp, Ả Rập, Trung, Latin có dấu đi qua sạch khi PDF lưu chúng dưới dạng văn bản thật. PDF vẽ ký tự không phải Latin dưới dạng glyph subset nhúng mà thiếu mã hóa đúng sẽ ra rác khi trích xuất — đó là vấn đề của chính PDF, không phải của trình trích xuất. Sửa từ nguồn: xuất lại với mã hóa Unicode đúng.
- Mẫu tên tệp. Tệp
contract.pdftải về dưới têncontract.txt. PDF trên ổ đĩa vẫn ở chỗ cũ.
Điều gì xảy ra với tệp của bạn
Trích xuất chạy trong trình duyệt của bạn. Mở DevTools và quan sát tab Network khi thao tác — không có yêu cầu đi ra mang nội dung tệp. PDF nằm yên trên ổ đĩa; .txt là tải xuống mới bên cạnh.
Câu hỏi thường gặp
Quá trình trích xuất hoạt động ra sao?
Chúng tôi dùng pdf.js của Mozilla để đọc lớp văn bản nhúng của PDF từng trang một. Các phần tử được nhóm theo tọa độ Y nên dấu ngắt đoạn được giữ nguyên — không máy chủ, không tải lên.
Có chạy được trên PDF được quét không?
Không. Bản quét là hình ảnh của văn bản, không phải văn bản — trích xuất cần OCR, mà công cụ này không chạy. Nếu PDF của bạn xuất phát từ giấy quét, hãy dùng công cụ OCR trước.
Tệp của tôi có được tải lên đâu không?
Không bao giờ. Việc trích xuất chạy hoàn toàn trong trình duyệt qua WebAssembly — có thể kiểm tra trong DevTools → Network. Tệp ở lại thiết bị của bạn.
Còn PDF có mật khẩu thì sao?
Hãy mở khóa PDF trước bằng công cụ Mở khóa PDF rồi mới trích xuất. Luồng nội dung mã hóa không thể phân tích nếu không có mật khẩu.
Giới hạn kích thước tệp là bao nhiêu?
Tối đa 100 MB. Lớn hơn có thể làm cạn bộ nhớ trình duyệt — hãy thử chia nhỏ trước bằng Chia PDF.