用java进行PDF、barcode4j压缩
我正在使用ApacheFop1.0创建PDF文档。默认情况下,它使用FlateFilter压缩内容。FOP在封面下使用DeflaterOutputStream默认_压缩。我没有发现任何可能将其设置为最佳压缩 pdf包含一些条形码以及由条形码4J 2.1生成的条形码。正如我看到的,生成的图像非常巨大,我没有找到任何关于如何压缩它的信息:用java进行PDF、barcode4j压缩,java,pdf,barcode,apache-fop,Java,Pdf,Barcode,Apache Fop,我正在使用ApacheFop1.0创建PDF文档。默认情况下,它使用FlateFilter压缩内容。FOP在封面下使用DeflaterOutputStream默认_压缩。我没有发现任何可能将其设置为最佳压缩 pdf包含一些条形码以及由条形码4J 2.1生成的条形码。正如我看到的,生成的图像非常巨大,我没有找到任何关于如何压缩它的信息: <fo:instream-foreign-object height="25pt" width="101pt"> <barcode:bar
<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>
37磅
0.9磅
没有一个
如果我生成pdf(在fop中使用flate并使用上面写的条形码注入),那么我可以使用simple winzip将pdf大小减少30%
在我的过程中有没有办法使用更好的压缩算法?
pdf应该可以在AcrobatReader中打开,因此不能在服务器端压缩,也不能在客户端解压
我认为barcode4j生成的图像可以被压缩,但我看不出该怎么做
更新1:
生成的条形码似乎太大。pdf包含3页和3个条形码。3条形码大约占整个pdf大小的50%
谢谢
Zoltan默认压缩设置和最大值之间没有太大区别。如果您了解ZLib,您可以编写一些测试代码来查看-可能比您预期的要少得多。之所以缩小30%,是因为压缩应用于整个文件——在PDF中,只有流被压缩
通过使用压缩的对象流,可以大大减小大小。FOP不支持它,但许多工具支持它。查看是否需要更多信息。PDF中的条形码应该非常小,因为它们可以以矢量图形的形式显示。Barcode4j能够生成EPS,也许有一种方法可以将其转换为PDF。那会节省很多空间。谢谢。问题可能出在条形码4J上。3个条形码是15千字节。