[英]PDF, barcode4j compression with java
我正在使用Apache Fop 1.0創建PDF文檔。 默認情況下,它使用FlateFilter壓縮內容。 FOP在封面下使用DeflaterOutputStream DEFAULT_COMPRESSION。 我找不到將其設置為BEST_COMPRESSION的任何可能性。
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中的flat並使用上面編寫的條形碼注入),則可以使用簡單的Winzip將PDF大小減小30%。
有沒有辦法在我的過程中使用更好的壓縮算法? pdf應該可以在Acrobat Reader中打開,因此不能選擇在服務器端壓縮並在客戶端解壓縮。
我認為條形碼4j生成的圖像可以壓縮,但是我看不到該怎么做。
Update1:生成的條形碼似乎太大。 pdf包含3頁和3個條形碼。 3條碼約占整個pdf尺寸的50%。
謝謝
佐爾坦
默認壓縮設置與最大壓縮設置之間沒有太大差異。 如果您了解ZLib,則可以編寫一些測試代碼來查看-可能比您預期的要少得多。 之所以將尺寸減小30%,是因為對整個文件進行了壓縮-在PDF中,僅流被壓縮。
您可以通過使用壓縮的對象流來大幅減小大小。 FOP不支持它,但是許多工具都支持。 如果需要更多信息,請參見此處 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.