2

我正在使用带有鸭嘴兽的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 $

4

1 回答 1

1

您是否尝试使用每个系统上的确切代码生成它们?我在reportlab源代码中进行了快速搜索,发现一些评论指出,如果您使用setFillAlphaorsetStrokeAlpha方法,那么它将导致生成 PDF 1.4 而不是 1.3。

编辑:

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

PDF_VERSION_DEFAULT = (1, 3)

PDF_VERSION_DEFAULT = (1, 4)

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

希望这可以帮助。

于 2010-11-03T23:43:23.703 回答