使用PDFBox 1.8.9文本重叠将PDF转换为图像

使用PDFBox 1.8.9文本重叠将PDF转换为图像,pdf,pdf-generation,pdfbox,Pdf,Pdf Generation,Pdfbox,我正在尝试使用PDFBOX1.8.9将PDF转换为图像。字体重叠了。我知道PDFBox 2.0快照中不会出现此问题。但在正式发布之前,它不能用于生产 代码如下: PDDocument pdDocument = PDDocument.load(new File("test.pdf")); List<PDPage> pages = pdDocument.getDocumentCatalog().getAllPages(); int pageCounter = 1; for (PDPa

我正在尝试使用PDFBOX1.8.9将PDF转换为图像。字体重叠了。我知道PDFBox 2.0快照中不会出现此问题。但在正式发布之前,它不能用于生产

代码如下:

PDDocument pdDocument = PDDocument.load(new File("test.pdf"));  
List<PDPage> pages = pdDocument.getDocumentCatalog().getAllPages();
int pageCounter = 1;
for (PDPage page : pages) {
    BufferedImage bufferedImage = page.convertToImage();
    File imageFile = new File(String.format("/tmp/pdf-image-%s.jpg", pageCounter));
    ImageIO.write(bufferedImage, "jpg", imageFile);     
    pageCounter++;
}
PDDocument PDDocument=PDDocument.load(新文件(“test.pdf”);
列表页面=pdDocument.getDocumentCatalog().getAllPages();
int pageCounter=1;
用于(第页:页){
BuffereImage BuffereImage=page.convertToImage();
File imageFile=新文件(String.format(“/tmp/pdf image-%s.jpg”,pageCounter));
写入(bufferedImage,“jpg”,imageFile);
pageCounter++;
}
除了重叠外,字体与PDF相似

当我试图通过命令行使用pdfbox-app-1.8.9.jar将PDF转换为图像时,图像是用不同的字体生成的。PDFBox是否有使用.ttf指定自定义字体的选项?在这种情况下,我如何指定

实际PDF格式:

使用上述代码转换的图像:

使用命令行转换的图像:


PDFBox在服务器上找不到字体时,会用字体替代Helvetica和Times New Roman等。在我的Linux机器上安装了上述字体后,问题得到了解决

你能举一个屏幕截图的例子吗?如果是同一台计算机,我怀疑它是不同的字体-也许图像分辨率不同?@tilmahausherr图像分辨率对此有影响吗?因为,我已经通过改变决议来尝试过了。@jaghan不,我只是想让你产生错觉。我真的很想看看Pekka要求的截图。@Pekka웃 谢谢,但我的意思是屏幕截图显示从java代码渲染和从cmdline应用程序渲染是不同的。字体呈现错误的问题是众所周知的(我相信我们在2.0中解决了100多个与字体相关的问题!),正如您所写的,将在2.0中工作。这不能在1.8中修复。