我使用Apache Fop 1.0创建PDF文档。默认情况下,它使用FlateFilter压缩内容。 FOP使用封面下的DeflaterOutputStream DEFAULT_COMPRESSION。我还没有找到将其设置为BEST_COMPRESSION的可能性。PDF,使用java进行barcode4j压缩
该pdf包含一些条形码以及Barcode4j 2.1生成的。当我看到生成的图像是相当巨大的,我还没有发现任何信息如何压缩它:
<fo:instream-foreign-object height="25pt" width="101pt">
<barcode:barcode xmlns:barcode="http://barcode4j.krysalis.org/ns" message="xxxxxxxx">
<barcode:code128>
<barcode:height>37pt</barcode:height>
<barcode:module-width>0.9pt</barcode:module-width>
<barcode:human-readable>
<barcode:placement>none</barcode:placement>
</barcode:human-readable>
</barcode:code128>
</barcode:barcode>
</fo:instream-foreign-object>
如果我生成的PDF文件(使用FOP flate和使用上面写的条形码注射),那么我可以降低简单的winzip的pdf大小减少30%。
有没有办法在我的过程中使用更好的压缩算法? PDF应该可以在Acrobat Reader中打开,所以它不是在服务器端压缩并在客户端解压它的选项。
我认为barcode4j生成的图像可以压缩,但我看不出如何去做。
更新1: 生成的条形码似乎太大。该pdf包含3页和3个条形码。 3条码约为整个pdf尺寸的50%。
感谢
佐尔坦
PDF中的条码应该很小,因为它们可以作为矢量图形呈现。 Barcode4j能够产生EPS,也许有一种方法可以将其转换为PDF。这应该可以节省大量的空间。 – 2011-02-28 10:19:21
谢谢。这个问题可能与barcode4j有关。 3个条码是15千字节。 – HamoriZ 2011-02-28 13:15:26