在 python 中编辑 PDF 文件可以使用一些第三方库,例如 PyPDF2、pdfrw 和 PyMuPDF。
下面是使用 PyPDF2 库编辑 PDF 文件的一个简单示例:
import PyPDF2
# Open the PDF file in read-only mode
with open('input.pdf', 'rb') as file:
# Create a PDF object
pdf = PyPDF2.PdfFileReader(file)
# Get the number of pages
num_pages = pdf.getNumPages()
# Iterate through all the pages
for i in range(num_pages):
# Get the current page
page = pdf.getPage(i)
# Modify the page
page.rotateClockwise(90)
# Add a new text box
page.mergeRecto({"llx": 100, "lly": 100, "urx": 200, "ury": 200})
page.insertTextbox(
"llx", "lly", "urx", "ury",
text="This is a new text box.",
fontSize=12,
)
# Open the PDF file in write mode
with open('output.pdf', 'wb') as file:
# Create a PDF object
pdf = PyPDF2.PdfFileWriter()
# Add all the modified pages to the PDF
for i in range(num_pages):
pdf.addPage(pages[i])
# Write the PDF to the file
pdf.write(file)
上面的代码会打开一个名为 input.pdf
的 PDF 文件,并在每一页的右侧增加一个旋转 90 度的新页面。然后,它会在每一页的左下角添加一个新的文本框,并将所有修改过的页面写入一个新的 PDF 文件 output.pdf
中。
这是一个简单的例子,你可以根据自己的需求来编写更复杂的Python编辑PDF的代码。
如果你想要在 python 中操作 PDF 文件,还可以使用 pdfrw 库。它可以帮助你读取、修改和写入 PDF 文件。
下面是使用 pdfrw 库读取 PDF 文件的一个简单示例:
import pdfrw # Read the PDF file pdf = pdfrw.PdfReader('input.pdf') # Print the PDF metadata print(pdf.Info) # Print the number of pages print(len(pdf.Pages)) # Iterate through all the pages for page in pdf.Pages: # Print the page size print(page.MediaBox)
上面的代码会打开名为 input.pdf
的 PDF 文件,然后打印出文件的元数据和页面数量,并遍历所有页面,打印出每一页的大小。
如果你想要修改 PDF 文件,可以使用 pdfrw 库修改文件中的数据。下面是一个简单的例子:
import pdfrw # Read the PDF file pdf = pdfrw.PdfReader('input.pdf') # Modify the PDF metadata pdf.Info.Title = "Modified PDF" pdf.Info.Author = "John Doe" # Modify the page size for page in pdf.Pages: page.MediaBox = [0, 0, 612, 792] # Write the PDF to a new file pdfrw.PdfWriter().write('output.pdf', pdf)
上面的代码会打开名为 input.pdf
的 PDF 文件,修改元数据和页面大小,然后将修改后的文件写入一个新的 PDF 文件 output.pdf
中。
这些都是简单的例子,你可以根据自己的需求来编写更复杂的使用Python来操作PDF的代码。