我正在使用带有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 $
答案 0 :(得分:1)
您是否尝试使用每个系统上的确切代码生成它们?我在reportlab源代码中进行了快速搜索,并发现了一些评论,指出如果您使用setFillAlpha
或setStrokeAlpha
方法,那么它将导致生成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文档。
希望这有帮助。