gpt4 book ai didi

java - 在 PDFBox 2.0.4 上将页面提取为图像时出现 "black stain"

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:31:34 25 4
gpt4 key购买 nike

使用 PDFBox 2.0.4 提取页面作为图像,我的结果页面包含多个“黑洞”,如下图所示:

enter image description here

这只发生在这个 PDF 和其他几个 PDF 中:http://www.filedropper.com/selection_3

这是重现问题的简单代码(使用 JavaFX)(下载 PDF 后更改文件路径):

public class PDFExtractionTest extends Application {

@Override
public void start(Stage primaryStage) throws Exception {
FileInputStream inputStream = new FileInputStream(new File("C:\\Users\\John\\Desktop\\selection.pdf"));
PDDocument document = PDDocument.load(inputStream);
PDFRenderer pdfRenderer = new PDFRenderer(document);
BufferedImage bufferedImage = pdfRenderer.renderImage(1);
Image fxImage = SwingFXUtils.toFXImage(bufferedImage, null);

BorderPane borderPane = new BorderPane();
ImageView imageView = new ImageView(fxImage);

borderPane.setCenter(imageView);

primaryStage.setScene(new Scene(borderPane, 1024, 768));
primaryStage.show();
}

public static void main(String[] args) throws FileNotFoundException {
launch(args);
}
}

这是我的依赖项:

  • pdfbox 2.0.4
  • jai-imageio-jpeg2000 1.3.0(防止错误:无法读取 JPEG2000 图像:未安装 Java 高级成像 (JAI) 图像 I/O 工具)
  • levigo-jbig2-imageio 1.6.5(防止错误:无法读取 JBIG2 图像:未安装 jbig2-imageio)

在日志中我有这个,但我不知道这是否是问题的原因。我该如何解决?

févr. 01, 2017 11:20:51 AM org.apache.pdfbox.pdmodel.font.PDSimpleFont toUnicode
AVERTISSEMENT: No Unicode mapping for .notdef (9) in font Times-Bold
févr. 01, 2017 11:20:51 AM org.apache.pdfbox.rendering.Type1Glyph2D getPathForCharacterCode
AVERTISSEMENT: No glyph for 9 (.notdef) in font Times-Bold
févr. 01, 2017 11:20:51 AM org.apache.pdfbox.pdmodel.font.PDSimpleFont toUnicode
AVERTISSEMENT: No Unicode mapping for .notdef (9) in font Helvetica
févr. 01, 2017 11:20:51 AM org.apache.pdfbox.rendering.Type1Glyph2D getPathForCharacterCode
AVERTISSEMENT: No glyph for 9 (.notdef) in font Helvetica

我是否遗漏了代码中的某些内容,或者我应该报告错误吗?

最佳答案

这是一个长期存在的问题(参见 PDFBOX-1752)。该错误在 JAI 中,而不在 PDFBox 中。 “No unicode...”在这里无关紧要,这仅与文本提取有关。

查看 the jai-imageio-jpeg2000 project ,然后将文件 StdEntropyDecoder.java 更改为 this commit (从这个扩展 pull request )。构建项目并在您的 maven pom.xml 中引用版本 1.3.1-SNAPSHOT 或将 jar 文件复制到您的类路径中。

如果 jai-imageio-jpeg2000 项目团队发布了包含该拉取请求的新版本,那么您将不再需要自己构建。

附加关键字:黑色墨迹、黑色 Blob

关于java - 在 PDFBox 2.0.4 上将页面提取为图像时出现 "black stain",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41977536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com