Thư viện Python nguồn mở để chuyển đổi tệp PDF
API Python miễn phí cho phép các nhà phát triển xuất, xoay, hợp nhất và nối các tệp PDF, trích xuất dữ liệu và các phần tử từ các tệp PDF.
pdfrw là một thư viện Python thuần túy mã nguồn mở cung cấp cho các nhà phát triển phần mềm đọc và ghi các tệp PDF mà không cần cài đặt bất kỳ phần mềm đặc biệt nào bên ngoài. thư viện lập trình pdfrw rất đơn giản để sử dụng và mã nguồn được tài liệu hóa tốt, rất đơn giản và dễ hiểu. Thư viện đã bao gồm hỗ trợ Unicode thích hợp cho các chuỗi văn bản trong PDF cũng như trình phân tích cú pháp PDF Python thuần túy nhanh nhất.
thư viện pdfrw bao gồm hỗ trợ cho một số thao tác PDF quan trọng như hợp nhất các tệp PDF, sửa đổi siêu dữ liệu, nối nhiều tệp PDF với nhau, trích xuất hình ảnh, in PDF, Xoay trang PDF, Tạo tệp PDF mới, Thêm hình ảnh PDF hình mờ và nhiều hơn nữa.
.
Bắt đầu với pdfrw
pdfrw yêu cầu Python 2.6, 2.7, 3.3, 3.4, 3.5 và 3.6. Bạn có thể cài đặt pdfrw bằng pip. Vui lòng sử dụng lệnh sau để cài đặt nó.
Cài đặt pdfrw qua pip
python -m pip install pdfrw
Tạo tài liệu PDF qua thư viện Python
thư viện pdfrw cung cấp cho các nhà phát triển phần mềm khả năng tạo Tạo Tài liệu PDF bên trong các ứng dụng Python của riêng họ chỉ với một vài dòng mã. Thư viện cũng cung cấp hỗ trợ để truy cập và sửa đổi các tệp PDF hiện có. Bạn có thể dễ dàng chèn các trang mới cũng như các thành phần đồ họa hoặc thành phần văn bản vào tệp PDF hiện có. thư viện pdfrw cung cấp hỗ trợ để tìm các trang trong tệp PDF bạn đọc và ghi một nhóm trang trở lại tệp PDF mới.
Tạo và thay đổi tài liệu PDF qua Python
// PDF Documents Creation
import sys
import os
from pdfrw import PdfReader, PdfWriter
inpfn, = sys.argv[1:]
outfn = 'alter.' + os.path.basename(inpfn)
trailer = PdfReader(inpfn)
trailer.Info.Title = 'My New Title Goes Here'
PdfWriter(outfn, trailer=trailer).write()
Đọc tệp PDF qua Python
thư viện pdfrw cung cấp cho các nhà phát triển phần mềm dễ dàng truy cập và đọc các phần khác nhau của tài liệu PDF bên trong các ứng dụng Python. Nó cho phép dễ dàng truy cập vào toàn bộ tài liệu PDF. Thư viện hỗ trợ truy xuất thông tin tệp, kích thước và hơn thế nữa. Nó tạo ra một thuộc tính đặc biệt có tên là các trang, cho phép người dùng liệt kê tất cả các trang của tài liệu PDF. Nó cho phép bạn trích xuất một đối tượng thông tin tài liệu mà bạn có thể sử dụng để lấy ra thông tin như tác giả, tiêu đề, v.v.
Truy cập và đọc tệp PDF qua Python
// Reading PDF Files
from pdfrw import pdfreader
def get_pdf_info(path):
pdf = pdfreader(path)
print(pdf.keys())
print(pdf.info)
print(pdf.root.keys())
print('pdf has {} pages'.format(len(pdf.pages)))
if __name__ == '__main__':
get_pdf_info('w9.pdf')
Thêm hoặc sửa đổi siêu dữ liệu
pdfrw cho phép các nhà phát triển phần mềm thêm hoặc sửa đổi siêu dữ liệu của các tệp PDF bên trong các ứng dụng Python của riêng họ. Bạn có thể thay đổi một mục siêu dữ liệu duy nhất trong tệp PDF, ghi kết quả vào tệp PDF mới cũng như có thể bao gồm nhiều tệp và nối chúng sau khi thêm một số siêu dữ liệu vô nghĩa vào tệp PDF đầu ra.
Sửa đổi siêu dữ liệu PDF qua Python
// Modifying PDF Metadata
import sys
import os
from pdfrw import PdfReader, PdfWriter
inpfn, = sys.argv[1:]
outfn = 'alter.' + os.path.basename(inpfn)
trailer = PdfReader(inpfn)
trailer.Info.Title = 'My New Title Goes Here'
PdfWriter(outfn, trailer=trailer).write()
Tách tài liệu PDF
pdfrw cho phép các nhà phát triển phần mềm Tách tài liệu PDF theo chương trình bên trong ứng dụng của họ. Người dùng có thể yêu cầu trích xuất một phần cụ thể của sách PDF hoặc chia nó thành nhiều tệp PDF thay vì lưu trữ chúng trong một tệp. Rất dễ dàng với thư viện pdfrw, bạn chỉ cần cung cấp đường dẫn tệp PDF đầu vào, số trang bạn muốn trích xuất và đường dẫn đầu ra.
Tách tệp PDF thành nhiều tệp PDF thông qua Python
// Splitting PDF file into multiple pdfs
from pdfrw import pdfreader, pdfwriter
def split(path, number_of_pages, output):
pdf_obj = pdfreader(path)
total_pages = len(pdf_obj.pages)
writer = pdfwriter()
for page in range(number_of_pages):
if page <= total_pages:
writer.addpage(pdf_obj.pages[page])
writer.write(output)
if __name__ == '__main__':
split('reportlab-sample.pdf', 10, 'subset.pdf')