我们当前正在使用apache fop来渲染一堆PDF格式的图像,但是我们注意到,几乎所有图像的质量都是完全垃圾,其中包含文本的任何内容都难以置信。
我已经浏览了有关原始分辨率和目标分辨率here.
的文档我想也许可以通过假设所有位图/ png / etc的默认(源)分辨率为每英寸72像素,并希望目标分辨率为每英寸300像素,来强制满足一些良好的图像质量。我认为,从理论上讲,这将使FOP将更多的图像填充到较小的空间中,从而提高了质量,而无需将图像粉碎到如此小的空间中。我也做过数学运算,在72 72之前,我们似乎获得了5 * 72 = 375像素的诺基亚手机屏幕分辨率,所以我也就不足为奇了。
好吧,即使目标PPI为300,而不是给我约1500像素的宽大空间,我仍然可以得到同样糟糕的诺基亚手机质量。我分别尝试了源PPI和目标PPI 300/300 72/300和300/72的许多组合,但是似乎没有任何原因会导致任何形式或重采样或更好的图像输出。最后,我总是只剩下这个。
这是我的PDF几乎全屏尺寸的实际屏幕截图。可能值得注意的是,我们使用org.apache.commons.codec.binary.Base64编码器 从内存中获取图像,并将其转换为字符串以嵌入到PDF中。我不知道通过这种编码器进行哪种压缩,但是我希望尽快将字符串转储到文件系统中以查看并确保这不是问题。
与此同时,有人知道我可能搞砸了哪些PPI设置,或者我可能需要哪些更好的选择,以便使用FOP将清晰的清晰图像渲染为PDF?