猿问

使用 PDFBox 正确将 PDF 渲染为图像

因此,在此应用程序中,我们使用 iText 填写 PDF 表单,使用 PDFBox 加载填写的 PDF 并将图像转换为我们的系统。

问题是转换图像时。所有的信息都在那里,但复选框……很奇怪?与在 PDF 上设置的样式复选框“复选标记”不同,复选框内部有一个奇怪的“空框”。

它应该是怎样的:

http://img1.mukewang.com/60b72a270001798703990223.jpg

PDFBox 版本 2.0.11 iText 版本是 5.5.13


这是发生转换的一小段代码:


PDDocument pdf = PDDocument.load(byteArrayInputStream);

PDFRenderer renderer = new PDFRenderer(pdf);

BufferedImage[] images = new BufferedImage[pdf.getNumberOfPages()];

PDPage page = null;

BufferedImage image = null;

for (int i = 0; i < images.length; i++) {

        try {

            image = renderer.renderImageWithDPI(i, 300,org.apache.pdfbox.rendering.ImageType.RGB);

            ...

转换后我也感觉到“质量下降”。之前,我们使用的是 PDFBox 1.8,转换质量很低,并且丢失了一些字体格式和样式。升级后它变得更好了,但仍然被窃听。


温温酱
浏览 531回答 1
1回答

潇湘沐

由于 Tilman Hausherr 的建议,它开始工作了。问题确实是运行应用程序的服务器中缺少字体。(Zapf Dingbats 和/或 MS Gothic)。在目录“./fonts”或“/usr/share/fonts”(Linux)/“/Windows/Fonts”(Windows)中安装缺少的字体就成功了!
随时随地看视频慕课网APP

相关分类

Java
我要回答