我想使用ghostscript来优化pdf文件。
我的文件是由iText生成的,并且有字体被多次嵌入- 3000+;
我想用ghostscript复制文档,它将删除所有嵌入的内容,并只在文件中嵌入一次。
你知道怎么做吗?
还有一个问题-- ghostscript和ghost4j之间有什么区别吗?
谢谢
发布于 2015-02-27 18:16:07
你很可能不能这样做。如果看不到文件,我就不能确定,但概率是每种字体都作为一个子集嵌入。也就是说,它只包含字体中最初存在的几个字形。
因此,如果第一个实例包含a,c,f和g,第二个实例包含b,e和h,您可以看到这两种字体实际上是不同的。
更糟糕的是,文本通常是重新编码的,因此字符代码并不是您所期望的。在上面的例子中,'a‘没有字符代码0x61 (’a‘的ASCII),它的字符代码是1。c是2,f是3,依此类推。但在第二种情况下,字符代码1将是'b',字符代码2将是'e‘,依此类推。
没有简单的方法来重新组合多个字体子集,也没有简单的方法将每组文本重新编码为“组合”字体。
在pdfwrite设备检测到具有兼容编码的多个子集字体(所使用的字符码在每个字体中是唯一的)的情况下,它将它们组合在一起。它不会再次尝试重新编码它们,所以如果两种字体使用相同的字符代码(根据我上面的例子),pdfwrite将只发出两种字体。
假设您已经尝试通过pdfwrite运行该文件,但没有得到您想要的结果,那么就是这样,您不能使用当前代码获得您想要的结果。
也许你可以告诉iText不要设置字体的子集,这将在源代码上为你解决问题,而不是试图在事后修复它。
https://stackoverflow.com/questions/28761288
复制相似问题