【问题标题】:Writing image into a PDF File将图像写入 PDF 文件
【发布时间】:2021-03-04 09:40:52
【问题描述】:

试图将图像写入特定位置的 pdf 文件。在此代码中,“Reporting.pdf”文件包含一个模板,我必须在其中粘贴我的图像。运行此代码时,输​​出 pdf 文件与“Reporting.pdf”文件相同,即图像不会写入 pdf。你能帮我解决这个问题吗?

from PyPDF2 import PdfFileWriter, PdfFileReader
from reportlab.pdfgen import canvas
from io import BytesIO
import os
THIS_FOLDER = os.path.dirname(os.path.abspath(__file__))
imgPath = os.path.join(THIS_FOLDER, 'child.png')
print(imgPath)

# Using ReportLab to insert image into PDF
imgTemp = BytesIO()
imgDoc = canvas.Canvas(imgTemp)

# Draw image on Canvas and save PDF in buffer
# imgPath = "/home/sachin/Files/child-image.jpeg"
imgDoc.drawImage(imgPath, 399, 760, 160, 160)    ## at (399,760) with size 160x160
imgDoc.save()
print(imgDoc)

# Use PyPDF to merge the image-PDF into the template
page = PdfFileReader("Reporting.pdf","rb").getPage(0)
overlay = PdfFileReader(BytesIO(imgTemp.getvalue())).getPage(0)
page.mergePage(overlay)

#Save the result
output = PdfFileWriter()
output.addPage(page)
pdfOutput = open('output_file101.pdf', 'wb')
output.write(pdfOutput)
pdfOutput.close()

【问题讨论】:

    标签: python-3.x tkinter-canvas reportlab pypdf2


    【解决方案1】:

    您不能只使用文件路径执行drawImage。 考虑使用ImageReader

    from reportlab.lib.utils import ImageReader
    
    reader = ImageReader(imgPath)
    
    imgDoc.drawImage(reader, ...)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-25
      • 2017-02-07
      • 1970-01-01
      • 1970-01-01
      • 2014-07-16
      • 2016-04-19
      • 2013-09-22
      • 1970-01-01
      相关资源
      最近更新 更多