【问题标题】:PDF to Image using PDFBox 1.8.9 text overlapped使用 PDFBox 1.8.9 文本重叠的 PDF 到图像
【发布时间】:2015-06-09 06:58:28
【问题描述】:

我正在尝试使用 PDFBox 1.8.9 将 PDF 转换为图像。字体越来越重叠。我知道 PDFBox 2.0 SNAPSHOT 中不会出现这个问题。但在正式发布之前不能用于生产。

下面是代码:

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++;
}

字体看起来与 PDF 相似,但重叠?

当我尝试通过命令行使用 pdfbox-app-1.8.9.jar 将 PDF 转换为图像时,会使用不同的字体生成图像。 PDFBox 是否可以选择使用 .ttf 指定自定义字体?那样的话,我该如何指定呢?

实际 PDF:

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

使用命令行转换图像:

【问题讨论】:

  • 你能展示一个示例屏幕截图吗?
  • 如果是同一台电脑,我怀疑是不同的字体-也许图像分辨率不同?
  • @TilmanHausherr 图像分辨率对此有什么影响吗?因为,我已经尝试过更改分辨率。
  • @jaghan 不,我的意思是它可能会产生错觉。我真的很想看看 Pekka 要求的屏幕截图。
  • @Pekka웃 谢谢,但我的意思是屏幕截图显示从 java 代码渲染和从 cmdline 应用程序渲染是不同的。字体渲染不正确的问题是已知的(我相信我们在 2.0 中解决了 100 多个与字体相关的问题!),正如您所写,将在 2.0 中工作。这在 1.8 中无法修复。

标签: pdf pdf-generation pdfbox


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-05
    • 1970-01-01
    • 1970-01-01
    • 2012-01-21
    • 2014-06-13
    • 2018-03-22
    • 1970-01-01
    相关资源
    最近更新 更多