FPDF 在 Python 中生成空白页面
Posted
技术标签:
【中文标题】FPDF 在 Python 中生成空白页面【英文标题】:FPDF produces empty pages in Python 【发布时间】:2017-03-24 19:46:13 【问题描述】:我编写了 Python 脚本,该脚本将根据带有 JPEG 的文件夹生成 PDF。没什么特别的:
import os
from fpdf import FPDF
folders = [ ... here are numbers - folders are numbered ... ]
for folder in folders:
pdf = FPDF()
for fil in os.scandir("parent folder" + str(folder) + "/"):
pdf.add_page()
pdf.image(fil.path, w=210, h=297)
pdf.output("target location/" + str(folder) + ".pdf", "F")
然而,此代码会导致 PDF 每隔一页空白。有趣的是这段代码:
import os
from fpdf import FPDF
folders = [ ... here are numbers - folders are numbered ... ]
for folder in folders:
pdf = FPDF()
pdf.add_page()
for fil in os.scandir("parent folder" + str(folder) + "/"):
pdf.image(fil.path, w=210, h=297)
pdf.output("target location/" + str(folder) + ".pdf", "F")
生成第一页为空的文件,其余部分正确。
我没有看到明显的解决方法 - 看起来有点像 fpdf 库。还是不是?
【问题讨论】:
另外,如果你忽略这个单一的 add_page 调用,代码会失败——仅供参考 您尝试过更小的尺寸吗?它可能会自动移动到下一页。 【参考方案1】:请尝试禁用 fpdf 中的自动分页模式。为此,请致电set_auto_page_break(0)
。
我遇到了这个问题,这是我的解决方案。希望对您有所帮助!
from fpdf import FPDF
pdf = FPDF()
pdf.set_auto_page_break(0)
更多信息,请查阅最新文档: http://pyfpdf.readthedocs.io/en/latest/reference/set_auto_page_break/
【讨论】:
谢谢,不幸的是,我可能仍在 2016 年解决了这个问题,我认为我没有触发这个问题的代码。不能真正评论它是否是正确的答案。不过,感谢您回到这里【参考方案2】:我解决这个问题的方法是使用:
pdf.set_auto_page_break(0)
在我启动 PDF 对象然后在每次插入图像之前添加一个页面之后。示例代码为:
from fpdf import FPDF
import os
pdf = FPDF(orientation = 'L') #if you want your pdf to be in Landscape mode
pdf.set_auto_page_break(0)
for i in range(10):
image_location = os.getcwd() + '\\image_' + str(i) + '.jpg'
pdf.add_page()
pdf.image(image_location, w=270) #270 used for A4 paper in Landscape orientation
pdf.output('my_pdf.pdf')
使用上述代码生成的 PDF 文件没有空白页。
【讨论】:
以上是关于FPDF 在 Python 中生成空白页面的主要内容,如果未能解决你的问题,请参考以下文章
html2canvas对于90000的页面,会渲染成空白页面吗