Cách viết tệp PDF bằng Python: Hướng dẫn toàn diện

By JoeVu, at: 20:58 Ngày 30 tháng 11 năm 2023

Thời gian đọc ước tính: __READING_TIME__ minutes

How to Write a PDF File Using Python: A Comprehensive Guide
How to Write a PDF File Using Python: A Comprehensive Guide

 

Mở đầu

 

Python cung cấp một bộ thư viện đa năng để làm việc với các tệp PDF, cho phép các nhà phát triển tạo, sửa đổi và thao tác các tài liệu PDF một cách dễ dàng. Trong hướng dẫn toàn diện này, chúng ta sẽ khám phá các thư viện Python khác nhau để viết tệp PDF, bao gồm các hoạt động cơ bản và giới thiệu khả năng của các thư viện phổ biến như PyPDF2, ReportLab, pdfkit, pdfrwPyMuPDF.

Có một bài đăng trên blog khác về đọc tệp pdf

 

1. PyPDF2: Viết PDF cơ bản

 

Cài đặt: pip install PyPDF2


Ví dụ viết PDF cơ bản:
 

import PyPDF2

with open('output_pypdf2.pdf', 'wb') as output_file:
    pdf_writer = PyPDF2.PdfFileWriter()
    # Thêm một trang mới vào PDF
    page = pdf_writer.addPage()
    # Thiết lập nội dung cho trang
    page.mergePage(PyPDF2.PdfReader('input.pdf').getPage(0))
    # Mã hóa PDF (tùy chọn)
    pdf_writer.encrypt('password')
    # Viết PDF đã sửa đổi vào tệp đầu ra
    pdf_writer.write(output_file)

 


Ví dụ này trình bày cách tạo một tệp PDF mới, thêm một trang, thiết lập nội dung của nó và tùy chọn mã hóa PDF bằng PyPDF2.

 

2. ReportLab: Tạo PDF nâng cao

 

Cài đặt: pip install reportlab

Ví dụ tạo PDF nâng cao:

from reportlab.pdfgen import canvas

def generate_pdf(file_path):
    # Tạo một tài liệu PDF mới
    pdf_canvas = canvas.Canvas(file_path)

    # Thêm nội dung vào PDF
    pdf_canvas.drawString(100, 750, "Hello, ReportLab!")

    # Lưu PDF
    pdf_canvas.save()

# Tạo PDF bằng ReportLab
generate_pdf('output_reportlab.pdf')

 


Trong ví dụ này, ReportLab được sử dụng để tạo một tài liệu PDF đơn giản với nội dung văn bản tại các tọa độ được chỉ định.

 

3. pdfkit: Chuyển đổi HTML sang PDF

 

Cài đặt: pip install pdfkit


Ví dụ chuyển đổi HTML sang PDF:
 

import pdfkit

# Chuyển đổi HTML sang PDF
pdfkit.from_file('input.html', 'output_pdfkit.pdf')


pdfkit sử dụng thư viện wkhtmltopdf để chuyển đổi nội dung HTML sang PDF. Trong ví dụ này, chúng ta chuyển đổi một tệp HTML sang một tài liệu PDF.

 

4. PyMuPDF: Viết PDF với văn bản và hình ảnh

 

Cài đặt: pip install PyMuPDF


Ví dụ viết PDF với văn bản và hình ảnh:
 

import fitz  # PyMuPDF

def write_pdf_with_text_and_images(file_path):
    # Tạo một tài liệu PDF mới
    doc = fitz.open()

    # Thêm một trang vào PDF
    page = doc.newPage()

    # Thêm văn bản vào trang
    page.insertText((100, 100), "Hello, PyMuPDF!")

    # Thêm hình ảnh vào trang
    image_path = 'image.jpg'
    image_rect = fitz.Rect(100, 200, 300, 400)
    page.insertImage(image_rect, filename=image_path)

    # Lưu PDF
    doc.save(file_path)
    doc.close()

# Viết PDF với văn bản và hình ảnh bằng PyMuPDF
write_pdf_with_text_and_images('output_pymupdf.pdf')


Trong ví dụ PyMuPDF này, chúng ta tạo một PDF mới, thêm một trang, chèn văn bản và hình ảnh, và lưu tài liệu kết quả.

 

5. pdfrw: Viết PDF cấp thấp

 

Cài đặt:  pip install pdfrw


Ví dụ viết PDF cơ bản:
 

from pdfrw import PdfWriter, PdfDict, IndirectPdfDict

def write_pdf_with_pdfrw(file_path):
    # Tạo một tài liệu PDF mới
    pdf_writer = PdfWriter()

    # Thêm một trang vào PDF
    page = PdfDict(
        Type='/Page',
        Parent=IndirectPdfDict(),
        Contents=IndirectPdfDict(stream="q 1 0 0 1 72 720 cm /F1 12 Tf (Hello, pdfrw!) Tj Q"),
    )

    # Thiết lập kích thước trang
    page.MediaBox = [0, 0, 612, 792]

    # Thêm trang vào PDF
    pdf_writer.pages.append(page)

    # Lưu PDF
    with open(file_path, 'wb') as output_file:
        pdf_writer.write(output_file)

# Viết PDF với pdfrw
write_pdf_with_pdfrw('output_pdfrw.pdf')

 


Trong ví dụ này, pdfrw được sử dụng để viết PDF cấp thấp. Chúng ta tạo một tài liệu PDF mới, thêm một trang, thiết lập nội dung của nó (văn bản) và lưu tài liệu kết quả. pdfrw cung cấp tính linh hoạt để thao tác trực tiếp các đối tượng PDF, làm cho nó phù hợp với các trường hợp cần kiểm soát chính xác cấu trúc và nội dung PDF.

 

Kết luận

 

Python cung cấp một hệ sinh thái phong phú các thư viện để viết tệp PDF, mỗi thư viện đáp ứng các nhu cầu và trường hợp khác nhau. Cho dù bạn đang thực hiện các hoạt động cơ bản với PyPDF2, tạo các tài liệu phức tạp với ReportLab, chuyển đổi nội dung HTML với pdfkit, hoặc kết hợp văn bản và hình ảnh với PyMuPDF, bạn có rất nhiều công cụ để sử dụng.

Hãy chọn thư viện phù hợp nhất với yêu cầu cụ thể của bạn và hãy khám phá thế giới tạo và tùy chỉnh PDF với Python. Khi bạn khám phá các thư viện này, bạn sẽ khám phá được sự linh hoạt và sức mạnh mà chúng mang lại cho các dự án liên quan đến PDF của bạn. Chúc bạn lập trình vui vẻ!

Tag list:
- python
- pdf reader
- PyMuPDF
- PyPDF2
- pdf writer
- pdf write
- pdfkit
- pdf generation python
- pdf file write
- reportlab pdf
- pdf writing python
- pdf extraction
- pdf reading

Liên quan

Theo dõi

Theo dõi bản tin của chúng tôi và không bao giờ bỏ lỡ những tin tức mới nhất.