CodeGym /Các khóa học /Python SELF VI /Các thư viện khác để làm việc với PDF trong Python

Các thư viện khác để làm việc với PDF trong Python

Python SELF VI
Mức độ , Bài học
Có sẵn

1. Làm quen với PDFPlumber

Trích xuất bảng và cấu trúc phức tạp bằng PDFPlumber

PDFPlumber rất phù hợp để trích xuất dữ liệu từ PDF, đặc biệt là các bảng và cấu trúc phức tạp như cột. Nó cho phép nhận diện và trích xuất dữ liệu mà rất khó lấy được bằng PyPDF2.

Cài đặt PDFPlumber

Python

pip install pdfplumber

Trích xuất bảng bằng PDFPlumber

Python

import pdfplumber

with pdfplumber.open("sample_with_table.pdf") as pdf:
    for page in pdf.pages:
        table = page.extract_table()
        if table:
            for row in table:
                print(row)

Đoạn code này trích xuất bảng từ từng trang của PDF, điều này rất hữu ích khi xử lý các báo cáo tài chính hoặc phân tích, nơi mà các bảng chứa số liệu quan trọng.

2. Làm quen với ReportLab

Tạo báo cáo PDF với ReportLab

Nếu bạn muốn tạo PDF từ đầu, ví dụ như để báo cáo hoặc tài liệu tự động, thư viện ReportLab cung cấp các chức năng linh hoạt để xây dựng PDF với văn bản, bảng, hình ảnh và biểu đồ.

Cài đặt ReportLab

Python

pip install reportlab

Tạo một tài liệu PDF đơn giản

Python

from reportlab.lib.pagesizes import A4
from reportlab.pdfgen import canvas

# Tạo PDF
pdf_file = canvas.Canvas("generated_report.pdf", pagesize=A4)
width, height = A4

# Thêm tiêu đề
pdf_file.setFont("Helvetica-Bold", 16)
pdf_file.drawString(100, height - 100, "Báo cáo doanh số")

# Thêm văn bản
pdf_file.setFont("Helvetica", 12)
pdf_file.drawString(100, height - 130, "Báo cáo này chứa dữ liệu doanh số tháng vừa qua.")

# Lưu PDF
pdf_file.showPage()
pdf_file.save()

Đoạn code này tạo một PDF với tiêu đề và văn bản. Nó cũng cho phép thêm logo, hình ảnh và các thành phần khác để trang trí.

Tạo bảng trong PDF với ReportLab

Python

from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle

# Dữ liệu cho bảng
data = [
    ["Tháng", "Doanh số"],
    ["Tháng Một", "200"],
    ["Tháng Hai", "300"],
    ["Tháng Ba", "250"]
]

# Tạo PDF với bảng
pdf_file = SimpleDocTemplate("sales_report.pdf", pagesize=A4)
table = Table(data)
table.setStyle(TableStyle([
    ('BACKGROUND', (0, 0), (-1, 0), colors.grey),
    ('TEXTCOLOR', (0, 0), (-1, 0), colors.whitesmoke),
    ('ALIGN', (0, 0), (-1, -1), 'CENTER'),
    ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'),
    ('BOTTOMPADDING', (0, 0), (-1, 0), 12),
    ('BACKGROUND', (0, 1), (-1, -1), colors.beige),
]))

# Xây dựng PDF
elements = [table]
pdf_file.build(elements)

Đoạn code này tạo bảng và lưu nó vào PDF. Với ReportLab, bạn cũng có thể thêm kiểu dáng, thay đổi màu sắc, kích thước font và định dạng văn bản.

3. Trở lại với PyPDF2

Tại sao là PyPDF2?

Như bạn đã biết, tài liệu PDF gần như là tiêu chuẩn cho mọi loại tài liệu, từ báo cáo cho đến white paper. Nhưng khi nhắc đến tự động hóa, làm việc với PDF trong Python có thể rất đau đầu. PyPDF2 giúp bạn vượt qua khó khăn đó: nó cho phép trích xuất văn bản, gộp và tách các trang, và còn nhiều hơn thế nữa. Làm việc với nó thật sự là một niềm vui. Nói chung, nó giống như một tách cà phê buổi sáng cho coder, nhưng thay vì làm tỉnh táo, nó làm bạn thoải mái!

Hãy điểm qua những chức năng cơ bản mà PyPDF2 cung cấp. Điều này sẽ chuẩn bị cho bạn những thử thách khó hơn, bởi vì bắt đầu dần dần sẽ dễ hiểu hơn.

Import và ví dụ cơ bản

Điều đầu tiên chúng ta cần làm là import thư viện. Giống như `import this` cổ điển, nhưng giờ nó sẽ thực hiện các nhiệm vụ cụ thể.

Python

import PyPDF2

Ví dụ đơn giản, hãy thử mở một tài liệu PDF và đọc nó.

Python

# Mở file ở chế độ nhị phân để đọc
with open('example.pdf', 'rb') as pdf_file:
    # Tạo đối tượng PDFReader
    pdf_reader = PyPDF2.PdfReader(pdf_file)
    # Trích xuất văn bản từ trang đầu tiên
    page = pdf_reader.pages[0]
    text = page.extract_text()
    print(text)

Đoạn code này thực hiện tất cả những gì cần thiết để bắt đầu: mở tài liệu PDF, trích xuất văn bản từ trang đầu tiên và in ra. Đơn giản và hiệu quả.

Tổng quan về chức năng của PyPDF2

PyPDF2 cung cấp nhiều chức năng để làm việc với PDF:

  • Trích xuất văn bản: đã được xem xét.
  • Gộp PDF: tạo một tài liệu PDF mới bằng cách gộp một số tài liệu hiện có.
  • Tách các trang: chọn các trang cần thiết và lưu chúng vào các tệp riêng biệt.
  • Thêm chú thích và nhận xét: đây là phần nâng cao nhất!

Ở giai đoạn này, bạn nên có cái nhìn tổng quan về cách PyPDF2 hoạt động và những gì nó cung cấp. Tất nhiên, không thể học hết trong một buổi, nhưng chúng ta sẽ từng bước khám phá những gì thư viện này có thể làm.

Phản hồi và lỗi phổ biến

Thông thường, code không chạy ngay mà mỗi lần học sẽ biến thành "hunt the bug". Lỗi phổ biến nhất khi sử dụng PyPDF2 là đường dẫn tệp sai. Hãy đảm bảo rằng tài liệu PDF của bạn nằm trong cùng thư mục với script hoặc chỉ định đường dẫn đầy đủ. Ngoài ra, đừng quên mở tệp ở chế độ nhị phân ('rb'), vì điều này giúp tránh các vấn đề về mã hóa. Như một lập trình viên thông thái từng nói, "Bug không phải là lỗi trong code của bạn, đó chỉ là những tính năng bất ngờ mà thôi".

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION