【问题标题】:python Portrait and landscape page in pdfpdf中的python纵向和横向页面
【发布时间】:2021-01-27 10:57:45
【问题描述】:

我是 python 新手。我想生成一个包含 3 张图像的 pdf,1 张图像是肖像,第二张图像是风景,第三张图像又是肖像。但似乎下面的代码无法处理这种情况,我错过了什么吗?

images = []
images = glob.glob(Outpath + "/IMG/*.jpg" ,recursive=False)

pdf = FPDF()

for x in range(len(images)):
    print(images[x] + ' at x = ' + str(x))

    #pdf.add_page()
    if width > height:
        pdf.add_page(orientation='L')
        pdf.image(images[x],x=0,y=0,h=210,w=297)
    elif width < height:
        pdf.add_page(orientation='P')
        pdf.image(images[x],x=0,y=0,h=297,w=210)

pdf.output(Outpath + "/IMG/IO.pdf", "F")

【问题讨论】:

  • 如果你想要一个 PDF,只创建一个对象。

标签: python pdf glob fpdf img2pdf


【解决方案1】:

您在每次迭代中创建一个新对象。

创建一个变量并在以后的迭代中使用它,如下所示:

import glob
from fpdf import FPDF

images = []
images = glob.glob(Outpath + "/IMG/*.jpg" ,recursive=False)

pdf = FPDF()

for x in range(len(images)):

    im_int = Image.open(images[x])
    width = im_int.width
    height = im_int.height
    if width > height:
        pdf.add_page(orientation='L')
        pdf.image(images[x],x=0,y=0,h=210,w=297)
    else:
        pdf.add_page()
        pdf.image(images[x],x=0,y=0,h=297,w=210)

pdf.output(Outpath + "/IMG/IO.pdf", "F")

【讨论】:

  • 谢谢,我现在可以生成 3 个页面。但是有什么办法可以创建一个pdf文件,第一页是纵向,第二页是横向,第三页又是纵向。
  • 很遗憾,我不知道动态更改页面样式。
  • 没关系,谢谢你的帮助,如果我解决了,我会发布解决方案。
  • 我刚刚解决了问题,我已经上传了代码供大家参考
  • 感谢帮助~
猜你喜欢
  • 2019-08-11
  • 2020-10-13
  • 1970-01-01
  • 2019-12-02
  • 2012-01-04
  • 1970-01-01
  • 1970-01-01
  • 2014-02-23
  • 1970-01-01
相关资源
最近更新 更多