Reportlab PDF版本生成问题

时间:2010-11-03 19:50:25

标签: python pdf-generation reportlab

我正在使用带有platypus的reportlab PDF包来生成一些PDF文件。在Linux服务器和Windows框上我有相同的python应用程序,相同版本的reportlab包(虽然稍微不同的python版本 - 2.6.5 vs 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 $

1 个答案:

答案 0 :(得分:1)

您是否尝试使用每个系统上的确切代码生成它们?我在reportlab源代码中进行了快速搜索,并发现了一些评论,指出如果您使用setFillAlphasetStrokeAlpha方法,那么它将导致生成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文档。

希望这有帮助。