使用reportLab生成的pdf大小

时间:2016-11-10 09:21:56

标签: python pdf-generation reportlab

我的pdf生成有问题。

当我生成pdf时,几分钟后,当我重新启动相同的脚本生成相同的pdf时,我的第一个pdf和第二个pdf之间没有相同的大小......

这是我的代码:

c = reportlab.pdfgen.canvas.Canvas("test.pdf")
c.showPage()
c.save()

第一个pdf有:1519字节

第二个有1531字节

每当我重新启动相同的脚本时,每当我有不同的值时。 为什么?我该如何解决?

1 个答案:

答案 0 :(得分:0)

我看不到您的PDF大小更改问题,但是其内容正在更改:

$ python make_pdf.py && md5sum test.pdf
9a1dbc5621622526b4411fb5f818246e  test.pdf
$ python make_pdf.py && md5sum test.pdf
b4c3ef4661c2a0f7d5c458757ac8a891  test.pdf
$

根据您的评论提示,设置invariant option即可解决问题。

import reportlab.pdfgen.canvas
import reportlab.rl_config

reportlab.rl_config.invariant = 1
c = reportlab.pdfgen.canvas.Canvas("test.pdf")
c.showPage()
c.save()

现在内容不会更改,因为PDF没有获得生成的ID,并且时间戳设置为2000 U Jan 2000 UTC。

$ python make_pdf.py && md5sum test.pdf
4a0ecf533e69fc2a91cda0a055cbec58  test.pdf
$ python make_pdf.py && md5sum test.pdf
4a0ecf533e69fc2a91cda0a055cbec58  test.pdf
$