Productivity
PDF 处理
以编程方式创建、读取和操作 PDF 文档。当用户需要生成、提取或转换 PDF 文件时使用。
以编程方式创建、读取和操作 PDF 文档。
pip install PyPDF2 reportlab
from PyPDF2 import PdfReader, PdfWriter
# Read PDF
reader = PdfReader('input.pdf')
for page in reader.pages:
text = page.extract_text()
print(text)
# Write PDF
writer = PdfWriter()
# Add pages...
writer.write('output.pdf')
from PyPDF2 import PdfReader
def extract_text(pdf_path):
reader = PdfReader(pdf_path)
text = ''
for page in reader.pages:
text += page.extract_text()
return text
from PyPDF2 import PdfReader
def get_metadata(pdf_path):
reader = PdfReader(pdf_path)
return reader.metadata
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
def create_pdf(output_path, content):
c = canvas.Canvas(output_path, pagesize=letter)
width, height = letter
# Add content
c.drawString(72, height - 72, content['title'])
c.drawString(72, height - 100, content['body'])
c.save()
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
from reportlab.lib.units import inch
def create_report(data):
c = canvas.Canvas('report.pdf', pagesize=letter)
width, height = letter
# Header
c.setFont('Helvetica-Bold', 24)
c.drawString(72, height - 72, data['title'])
# Body
c.setFont('Helvetica', 12)
y = height - 120
for line in data['content']:
c.drawString(72, y, line)
y -= 20
c.save()
from PyPDF2 import PdfMerger
def merge_pdfs(pdf_list, output_path):
merger = PdfMerger()
for pdf in pdf_list:
merger.append(pdf)
merger.write(output_path)
merger.close()
from PyPDF2 import PdfReader, PdfWriter
def split_pdf(pdf_path, page_ranges):
reader = PdfReader(pdf_path)
for i, (start, end) in enumerate(page_ranges):
writer = PdfWriter()
for page_num in range(start, end + 1):
writer.add_page(reader.pages[page_num])
writer.write(f'output_{i}.pdf')
from PyPDF2 import PdfReader, PdfWriter
def rotate_pdf(pdf_path, rotation, output_path):
reader = PdfReader(pdf_path)
writer = PdfWriter()
for page in reader.pages:
page.rotate(rotation)
writer.add_page(page)
writer.write(output_path)
from PyPDF2 import PdfReader
def get_form_fields(pdf_path):
reader = PdfReader(pdf_path)
return reader.get_form_text_fields()
from PyPDF2 import PdfReader, PdfWriter
def fill_form(pdf_path, fields, output_path):
reader = PdfReader(pdf_path)
writer = PdfWriter()
writer.append(reader)
writer.update_page_form_field_values(writer.pages[0], fields)
writer.write(output_path)