CẢNH BÁO. pdftotree là mã thử nghiệm và KHÔNG ổn định. Nó không được Fonduer tích hợp hoặc hỗ trợ
Fonduer thực hiện xây dựng cơ sở tri thức từ dữ liệu được định dạng phong phú như bảng. Một bước quan trọng trong quá trình này là xây dựng cây phân cấp của các đối tượng ngữ cảnh như khối văn bản, hình, bảng, v.v. Hệ thống hiện đang sử dụng tính năng chuyển đổi PDF sang HTML do Adobe Acrobat cung cấp. Tuy nhiên, Adobe Acrobat không phải là một công cụ mã nguồn mở, điều này có thể gây bất tiện cho người dùng Fonduer
Gói này là kết quả của việc xây dựng mô-đun của riêng chúng tôi để thay thế cho Adobe Acrobat. Một số công cụ nguồn mở có sẵn để chuyển đổi pdf sang html nhưng những công cụ này không bảo toàn cấu trúc ô trong bảng. Mục tiêu của chúng tôi trong dự án này là phát triển một công cụ trích xuất văn bản, số liệu và bảng trong tài liệu pdf và trả lại chúng ở định dạng dễ sử dụng
Lên đến v0. 4. 1, đầu ra của pdftotree được định dạng theo định dạng “giống HTML” của chính nó. từ v0. 5. 0, nó phù hợp với hOCR, một định dạng chuẩn mở cho kết quả OCR
phụ thuộc
pdftotree phụ thuộc vào các thư viện gốc sau
ImageMagick 6+ [dành cho Cây đũa phép]
Java 8+ [dành cho tabula-py]
Cài đặt
Để cài đặt gói này từ PyPi
$ pip install pdftotree
Cách sử dụng
pdftotree dưới dạng gói Python
import pdftotree
pdftotree.parse[pdf_file, html_path=None, model_type=None, model_path=None, visualize=False]:
Đây là tiện ích dòng lệnh chính được cung cấp cùng với gói Python này. Thao tác này lấy tệp PDF làm đầu vào và tạo tệp hOCR làm đầu ra
usage: pdftotree [options] pdf_file Convert PDF into hOCR. positional arguments: pdf_file Path to input PDF file. optional arguments: -h, --help show this help message and exit -mt {vision,ml,None}, --model_type {vision,ml,None} Model type to use. None [default] for heuristics approach. -m MODEL_PATH, --model_path MODEL_PATH Pretrained model, generated by extract_tables tool -o OUTPUT, --output OUTPUT Path to output hOCR file. If not given, it will be printed to stdout. -V, --visualize Whether to output visualization images -v, --verbose Output INFO level logging. -vv, --veryverbose Output DEBUG level logging.
Cho các nhà phát triển
Chúng tôi đang theo Phiên bản ngữ nghĩa 2. 0. 0 quy ước. Những người bảo trì sẽ tạo một thẻ git cho mỗi bản phát hành và tăng số phiên bản được tìm thấy trong tệp phiên bản tương ứng. Chúng tôi tự động triển khai thẻ cho PyPI bằng cách sử dụng Tác vụ GitHub
bài kiểm tra
Để kiểm tra các thay đổi trong gói, bạn cài đặt nó ở chế độ có thể chỉnh sửa cục bộ trong virtualenv của mình bằng cách chạy
Công thức này cho thấy cách chuyển đổi văn bản trong tài liệu HTML sang PDF, sử dụng thư viện Beautiful Soup và xtopdf cho Python. Nó có thể được sử dụng vì nó cung cấp một cách nhanh chóng để hiển thị văn bản của một tài liệu HTML ở định dạng Python mà không phải nhảy qua nhiều vòng mà một giải pháp phức tạp hơn có thể yêu cầu. Tùy thuộc vào loại nội dung văn bản HTML, công thức này có thể cung cấp giải pháp gần với giải pháp cuối cùng cần thiết hoặc giải pháp trung gian hoặc ban đầu, có thể đóng vai trò là bản nháp
Dự án Django hiện tại của tôi xử lý các tệp sơ yếu lý lịch ở định dạng Word/PDF. Để hiển thị bản xem trước trên web của tệp, cần phải dịch các tệp này sang HTML thuần túy. Mặc dù trước đây đôi khi điều này gây khó khăn, nhưng gần đây tôi nhận thấy rằng việc này tương đối dễ dàng với các công cụ Linux tiêu chuẩn
AbiWord là một trình xử lý văn bản có mục đích chung cho Linux. Nó hỗ trợ khá tốt cho các tệp Word, cũng như nhiều định dạng khác như PDF, RTF, v.v. Thông thường, nó được gọi dưới dạng ứng dụng GUI, giống như Microsoft Word. Tuy nhiên, là một ứng dụng Linux, cũng có hỗ trợ dòng lệnh tốt
Một trong những điều bạn có thể làm từ dòng lệnh là chuyển đổi tệp từ định dạng này sang định dạng khác. Đây là một ví dụ nhanh
# print the HTML translation of a DOC file to the console abiword -t output.html resume.doc; cat output.html
Việc gọi điều này từ Python cũng tương đối đơn giản, sử dụng các thư viện chuẩn
import subprocess import os import uuid def document_to_html[file_path]: tmp = "/tmp" guid = str[uuid.uuid1[]] # convert the file, using a temporary file w/ a random name command = "abiword -t %[tmp]s/%[guid]s.html %[file_path]s; cat %[tmp]s/%[guid]s.html" % locals[] p = subprocess.Popen[command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True, cwd=os.path.join[settings.PROJECT_DIR, "website/templates"]] error = p.stderr.readlines[] if error: raise Exception["".join[error]] html = p.stdout.readlines[] return "".join[html]
AbiWord tạo HTML khá rõ ràng. Nếu bạn muốn cọ rửa kỹ hơn nữa, tôi sẽ đề xuất thứ gì đó như BeautifulSoup