gpt4 book ai didi

python - 使用 Python 生成扁平化的 PDF

转载 作者:太空狗 更新时间:2023-10-29 17:48:32 27 4
gpt4 key购买 nike

当我从我的任何源 PDF 打印 PDF 时,文件大小下降并删除了表单中显示的文本框。简而言之,它将文件展平。这是我想要实现的行为。

以下代码使用另一个 PDF 作为源(我想要展平的那个)创建 PDF,它也写入文本框表单。

我可以得到没有文本框的 PDF 吗?就像我将 PDF 打印为 PDF 时 Adob​​e 所做的那样。

我的其他代码看起来像这样减去了一些东西:

import os
import StringIO
from pyPdf import PdfFileWriter, PdfFileReader
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter

directory = os.path.join(os.getcwd(), "source") # dir we are interested in
fif = [f for f in os.listdir(directory) if f[-3:] == 'pdf'] # get the PDFs
for i in fif:
packet = StringIO.StringIO()
can = canvas.Canvas(packet, pagesize=letter)
can.rotate(-90)
can.save()

packet.seek(0)
new_pdf = PdfFileReader(packet)
fname = os.path.join('source', i)
existing_pdf = PdfFileReader(file(fname, "rb"))
output = PdfFileWriter()
nump = existing_pdf.getNumPages()
page = existing_pdf.getPage(0)
for l in range(nump):
output.addPage(existing_pdf.getPage(l))
page.mergePage(new_pdf.getPage(0))
outputStream = file("out-"+i, "wb")
output.write(outputStream)
outputStream.close()
print fName + " written as", i

总结:我有一个 pdf,我向其中添加了一个文本框,覆盖了信息并添加了新信息,然后我从该 pdf 打印了一个 pdf。文本框不再可编辑或移动。我想自动执行该过程,但我尝试的一切仍然允许该文本框可编辑。

最佳答案

如果安装操作系统包是一个选项,那么您可以使用 pdftk 及其 python 包装器 pypdftk,如下所示:

import pypdftk
pypdftk.fill_form('filled.pdf', out_file='flattened.pdf', flatten=True)

您还需要安装 pdftk 包,在 Ubuntu 上可以这样做:

sudo apt-get install pdftk

pypdftk 库可以从 PyPI 下载:

pip install pypdftk

更新:pdftk 已在 version 18.04 中从 Ubuntu 中短暂删除, 但它似乎又回来了 since 20.04 .

关于python - 使用 Python 生成扁平化的 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27023043/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com