gpt4 book ai didi

python - 在 Python 中向现有 PDF 文档添加文本

转载 作者:太空狗 更新时间:2023-10-29 19:30:34 28 4
gpt4 key购买 nike

我正在尝试将 pdf 转换为与我的 A4 页面 pdf 相同的大小。

convert my_pdf.pdf -density 300x300 -page A4 my_png.png

然而,生成的 png 文件是 595px × 842px,这应该是 72 dpi 的分辨率。我正在考虑使用 PIL 在某些 pdf 字段上写一些文本并将其转换回 PDF。但目前图像出现错误。

编辑:我从错误的角度处理问题。正确的方法根本不包括 imagemagick。

最佳答案

经过一番搜索,我终于找到了解决方案:结果是 this毕竟是正确的方法。然而,我觉得它还不够冗长。看来海报可能是从here拿来的(相同的变量名称等)。

想法:使用仅包含文本字符串的 Reportlab 创建新的空白 PDF。然后使用 pyPdf 将其合并/添加为水印。

from pyPdf import PdfFileWriter, PdfFileReader
import StringIO
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
packet = StringIO.StringIO()
# create a new PDF with Reportlab
can = canvas.Canvas(packet, pagesize=letter)
can.drawString(100,100, "Hello world")
can.save()

#move to the beginning of the StringIO buffer
packet.seek(0)
new_pdf = PdfFileReader(packet)
# read your existing PDF
existing_pdf = PdfFileReader(file("mypdf.pdf", "rb"))
output = PdfFileWriter()
# add the "watermark" (which is the new pdf) on the existing page
page = existing_pdf.getPage(0)
page.mergePage(new_pdf.getPage(0))
output.addPage(page)
# finally, write "output" to a real file
outputStream = file("/home/joe/newpdf.pdf", "wb")
output.write(outputStream)
outputStream.close()

希望这对其他人有帮助。

关于python - 在 Python 中向现有 PDF 文档添加文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6819336/

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