Reportlab PDF版本生成问题

问题描述 投票:0回答:2

我正在使用带有 platypus 的 reportlab PDF 包来生成一些 PDF 文件。在linux服务器和windows盒子上我有相同的python应用程序,相同版本的reportlab包(尽管python版本略有不同 - 2.6.5与2.6.6)。我使用自己的字体,不依赖系统字体。最近,我注意到这两个平台上生成的 PDF 有点不同 - 与另一个版本相比,一个版本中的某些段落是垂直向上的几个点。

我试图找出这些平台之间的区别,但我没能找到区别。

最后,当我比较PDF文件时,一个文件是PDF 1.3,第二个文件是PDF 1.4版本,所以我认为问题一定是这个。我不知道如何在reportlab中设置PDF版本的任何选项,请任何人指出如何设置生成的PDF文件的正确版本,或者也许设置reportlab输出的一些附加属性?

更新:

使用reportlab版本2.4:

reportlab.__version__: $Id: __init__.py 3649 2010-01-20 14:45:53Z damian $

python pdf-generation reportlab
2个回答
1
投票

您是否尝试在每个系统上使用确切的代码生成它们?我在reportlab源代码中进行了快速搜索,发现一些注释指出,如果您使用

setFillAlpha
setStrokeAlpha
方法,那么它将导致生成PDF 1.4而不是1.3。

编辑:

进一步看,我相当确定这些方法是reportlab 生成PDF 1.4 文件的唯一原因。否则似乎总是默认为 1.3。据我所知,没有允许您切换版本的界面。但是,您可以很容易地修改源代码来做到这一点。只需搜索

pdfdoc.py
并将此行(在 reportlab 2.5 中的第 85 行附近)更改为

PDF_VERSION_DEFAULT = (1, 3)

PDF_VERSION_DEFAULT = (1, 4)

这将强制它始终生成 PDF 1.4 文档。

希望这有帮助。


0
投票

明白了!这是一个没有代码的快速总结:

安装问题:确保已安装 ReportLab。 导入错误:检查模块导入是否正确。 文件未创建:验证目录写入权限。 字体问题:注册任何自定义字体。 复杂布局:使用 platypus 进行高级布局。 调试:使用 try- except 块来捕获错误。 如果您需要有关任何特定问题的更多详细信息,请告诉我!

© www.soinside.com 2019 - 2024. All rights reserved.