Thư viện chú thích PDF Python nguồn mở

Hãy thử thư viện Python mã nguồn mở miễn phí này để thêm và trích xuất chú thích từ tài liệu PDF.

Pypdf là gì?

Pypdf là một thư viện python miễn phí và mã nguồn mở được biết đến với bộ tính năng đa dạng để xử lý tài liệu PDF trong môi trường python. Công cụ này thực sự hữu ích cho nhiều thao tác PDF khác nhau nhưng chúng tôi sẽ tập trung vào các tính năng liên quan đến chú thích của nó trong bài đánh giá này.

Các tính năng đáng chú ý của pypdf liên quan đến chú thích bao gồm:

  • Thêm chú thích hình dạng: Chúng ta có thể vẽ các hình dạng như đường thẳng, hình chữ nhật, hình elip và đa giác, v.v. trên các khu vực cụ thể của trang PDF dưới dạng chú thích.
  • Thêm chú thích văn bản: Chúng ta có thể thêm chú thích văn bản vào các vị trí cụ thể của trang PDF.
  • Thêm chú thích liên kết: Bạn cũng có thể thêm chú thích liên kết (như siêu liên kết) vào tài liệu PDF.
  • Trích xuất chú thích: Chúng ta có thể lặp lại và trích xuất thông tin về tất cả chú thích trong tài liệu PDF bằng thư viện pypdf.
GitHub

Thống kê GitHub

Tên:
Ngôn ngữ:
Ngôi sao:
Nĩa:
Giấy phép:
Kho lưu trữ được cập nhật lần cuối lúc

Bắt đầu với pypdf

Bạn cần Python phiên bản 3.6.0 trở lên để cài đặt và sử dụng pypdf. Vì vậy, trước tiên hãy cài đặt Python rồi sử dụng các lệnh bên dưới để cài đặt pypdf trên máy của bạn bằng pipmôi trường ảo.

Linux


python3 -m venv venv
source venv/bin/activate
pip install pypdf

Hệ điều hành MacOS


python -m venv venv
source venv/bin/activate
pip install pypdf

Cửa sổ


python3 -m venv venv
venv\Scripts\activate.bat
pip install pypdf

Thêm chú thích hình chữ nhật vào PDF

Chúng ta có thể thêm chú thích hình chữ nhật vào tài liệu PDF bằng thư viện pypdf. Chúng ta sẽ sử dụng lớp Rectangle của mô-đun pypdf.annotations từ thư viện pypdf để định nghĩa hình chữ nhật. Sau đó, chúng ta sẽ sử dụng phương thức add_annotations của lớp PDFWriter để thêm chú thích hình chữ nhật vào PDF.

Kiểm tra đoạn mã bên dưới để biết chi tiết:

# Import necessary modules from pypdf library
from pypdf import PdfReader, PdfWriter
from pypdf.annotations import Rectangle
# Read the PDF file using PdfReader
reader = PdfReader("documentprocessing.pdf")
# Get the first page of the PDF
page = reader.pages[0]
# Create a new PdfWriter object to write the modified PDF
writer = PdfWriter()
# Add the page from the original PDF to the new writer
writer.add_page(page)
# Define the rectangle annotation with coordinates (35, 690, 170, 720)
annotation = Rectangle(rect=(35, 690, 170, 720))
# Add the rectangle annotation to the first page of the new PDF
writer.add_annotation(page_number=0, annotation=annotation)
# Write the modified PDF to a new file ("annotated-pdf.pdf")
with open("annotated-pdf.pdf", "wb") as fp:
writer.write(fp)

Đầu ra

Trong ảnh chụp màn hình bên dưới, bạn có thể thấy hình chữ nhật được thêm vào để chú thích cho từ Nguồn mở:

Thêm chú thích văn bản vào PDF

Chúng tôi tạo chú thích văn bản bằng lớp Text từ mô-đun pypdf.annotations của thư viện pypdf. Sau đó, chúng tôi có thể sử dụng phương thức add_annotations của lớp PDFWriter từ thư viện pypdf để thêm chú thích vào PDF. Chú thích văn bản được thêm dưới dạng biểu tượng mở rộng và hiển thị văn bản khi nhấp vào biểu tượng. Kiểm tra đoạn mã bên dưới để biết chi tiết:

# Import necessary classes and modules from PyPDF library
from pypdf import PdfReader, PdfWriter
from pypdf.annotations import Text
# Open the original PDF file for reading
reader = PdfReader("documentprocessing.pdf")
# Get the first page of the original PDF
page = reader.pages[0]
# Create a new PDF writer object
writer = PdfWriter()
# Add the first page of the original PDF to the new PDF
writer.add_page(page)
# Create a Text annotation with specified text and rectangle coordinates
annotation = Text(
text="Hi there,\nWelcome to DocumentProcessing.com",
rect=(180, 705, 240, 755)
)
# Add the annotation to the first page of the new PDF
writer.add_annotation(page_number=0, annotation=annotation)
# Open the new PDF file for writing in binary mode
with open("annotated.pdf", "wb") as fp:
# Write the content of the new PDF to the file
writer.write(fp)

Đầu ra

Như chúng ta có thể thấy trong video dưới đây, đoạn mã trên thêm một biểu tượng vào PDF ở vị trí đã chỉ định, biểu tượng này sẽ hiển thị chú thích văn bản khi nhấp vào biểu tượng:

Thêm chú thích liên kết vào PDF

Chú thích liên kết được tạo bằng lớp Link từ mô-đun pypdf.annotations. Tuy nhiên, vấn đề với chú thích liên kết là nó chỉ thêm liên kết nhưng không hiển thị. Để giải quyết vấn đề này, chúng tôi sẽ kết hợp một hình chữ nhật bằng lớp Rectangle từ mô-đun pypdf.annotations như chúng tôi đã giải thích trước đó. Theo cách này, người dùng có thể xác định trực quan vị trí chú thích liên kết được thêm vào. Kiểm tra đoạn mã bên dưới để hiểu rõ hơn:

Đầu ra

Như chúng ta có thể thấy trong kết quả, hình chữ nhật đóng vai trò là một khu vực, khi nhấp vào sẽ chuyển hướng người dùng đến liên kết đã chỉ định.

Trích xuất chú thích từ PDF

Chúng ta có thể trích xuất chú thích từ PDF bằng thư viện pypdf. Chúng ta lặp lại tất cả các chú thích trên các trang PDF và sau đó sử dụng phương thức get_object để lấy đối tượng chú thích. Sau đó, chúng ta trích xuất thông tin có liên quan từ đối tượng. Kiểm tra đoạn mã bên dưới để biết chi tiết:

# Import necessary modules from pypdf library
from pypdf import PdfReader
# Create a PdfReader object to read the PDF file
reader = PdfReader("documentprocessing.pdf")
# Iterate through all pages in the PDF
for page in reader.pages:
# Check if the page contains annotations ("/Annots" key)
if "/Annots" in page:
# Iterate through each annotation on the page
for annot in page["/Annots"]:
# Get the annotation object
obj = annot.get_object()
# Extract relevant information from the annotation object
# - "subtype" represents the type of annotation (e.g., text, link)
# - "location" represents the rectangle coordinates of the annotation
annotation = {"subtype": obj["/Subtype"], "location": obj["/Rect"]}
# Print the extracted annotation information
print(annotation)

Đầu ra

Như chúng ta có thể thấy trong ảnh chụp màn hình bên dưới, chương trình đã trả về loại chú thích và tọa độ của các chú thích trong tài liệu PDF:

Phần kết luận

Pypdf cho phép các nhà phát triển Python thêm các loại chú thích khác nhau vào PDF và truy cập thông tin cần thiết về chú thích, chẳng hạn như loại và vị trí của chúng, khiến nó trở thành lựa chọn thiết thực cho các tác vụ yêu cầu thêm chú thích và trích xuất dữ liệu về chú thích.

Sản Phẩm Tương Tự

 Vietnamese