【发布时间】:2014-01-11 06:35:22
【问题描述】:
我想将 PDF 页面转换为图像文件。当我使用 java 将 PDF 页面转换为图像时,文本丢失。
转换后我要转换的文件46_2.pdf 向我显示46_2.png
代码:
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.List;
import javax.imageio.ImageIO;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
public class ConvertPDFPageToImageWithoutText {
public static void main(String[] args) {
try {
String oldPath = "C:/PDFCopy/46_2.pdf";
File oldFile = new File(oldPath);
if (oldFile.exists()) {
PDDocument document = PDDocument.load(oldPath);
List<PDPage> list = document.getDocumentCatalog().getAllPages();
for (PDPage page : list) {
BufferedImage image = page.convertToImage();
File outputfile = new File("C:/PDFCopy/image.png");
ImageIO.write(image, "png", outputfile);
document.close();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
【问题讨论】:
-
我会尝试使用 convertToImage( type, resolution ) 方法,看看你会得到什么。我敢打赌,您将不得不多次修改该决议以使其正确。 pdfbox.apache.org/docs/1.8.3/javadocs/org/apache/pdfbox/pdmodel/…, int)
-
1.8.x 版本在字体渲染方面存在不足。这些已在未发布的 2.0 版本中解决,您可以使用 svn 从存储库中获取,并使用 maven 构建。
-
@TilmanHausherr 你能给我一个下载jar的链接吗?
-
pdfbox.apache.org/downloads.html#scm 注意API是不同的(尤其是渲染),所以看看例子看看它是怎么做的。
标签: java pdf pdfbox javax.imageio apache-commons-logging