gpt4 book ai didi

java - 使用 OpenViewerFX 显示某些 PDF 时出错

转载 作者:行者123 更新时间:2023-12-02 11:42:36 79 4
gpt4 key购买 nike

我正在使用 OpenViewerFX (JPedal) 在 JavaFX 应用程序中显示 PDF 文件。有些文件显示良好,其他文件仅显示不可打印的字符(在我自己创建的文档以及其他人的文档中)。例如,参见这个:

Display error

这是我的代码:

private final PdfDecoderFX pdf = new PdfDecoderFX();
private Group group;

@Override
public void start(Stage stage) {

BorderPane bp = new BorderPane();
Scene scene = new Scene(bp, 400, 400);
stage.setScene(scene);
stage.show();

group = new Group();
group.getChildren().add(pdf);

bp.setCenter(group);


Platform.runLater(() -> {
try {
pdf.openPdfFile("D:\\Dokument1.pdf");
decodePage();
} catch (PdfException e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
});
}

private void decodePage() {

try {
pdf.setPageParameters(2.0f, 0);
pdf.decodePage(1);
pdf.waitForDecodingToFinish();
} catch (final Exception e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
}


PDF 文件是使用 Adobe PDF 打印机从 Word 文档创建的。我使用了标准字体仅标准字符。我在创建文件时测试了几个设置,包括

  • “PDF 1.3”与“PDF 1.7”的兼容性
  • 启用/禁用网络优化
  • 包含所有字体
  • 包括 Open-Type 字体

但结果总是相同。

我可能做错了什么?

最佳答案

对我来说似乎是字体问题。调试输出过去对我有帮助 - 至少我在那里看到了一些错误消息。我不太确定正确的选项是什么,但请尝试以下操作:

  1. 您是否尝试启用 jpedal 日志记录?
//debug code
LogWriter.log_name="/yourpath/log.txt";
LogWriter.setupLogFile(true,0,"1.0","v",false);
  • 当 type 为任意值时,org.jpedal.PdfDecoder.getPageDecodeStatus(int type) 的状态是什么?在 org.jpedal.parser.DecodeStatus 中定义

  • 我们使用 ViewerFX 的修补版本 - 你能尝试一下 one

  • 您确定指定了正确的字体路径吗?要通过 JVM 标志添加整个字体目录,请设置 JVM 标志 -Dorg.jpedal.fontdirs=dirList ,其中 dirList 是可能目录的逗号分隔列表。

  • 您的操作系统是什么? Windows 还是 Linx?

  • 您是否也尝试过 -Dorg.jpedal.inclusiveLogFilter= "memory,error"JVM 选项?

  • 尝试设置-Dverbose=true

  • 调用GUI.debugFX=true;参见here .

  • 关于java - 使用 OpenViewerFX 显示某些 PDF 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48438136/

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