Java 使用OpenViewerFX显示某些PDF时出错

Java 使用OpenViewerFX显示某些PDF时出错,java,pdf,javafx,openviewerfx,Java,Pdf,Javafx,Openviewerfx,我正在使用OpenViewerFX(JPedal)在JavaFX应用程序中显示PDF文件。有些文件显示得很好,而另一些文件只显示不可打印的字符(在我自己创建的文档以及其他人创建的文档中)。 例如,请参见以下示例: 这是我的代码: private final PdfDecoderFX pdf = new PdfDecoderFX(); private Group group; @Override public void start(Stage stage) { BorderPane

我正在使用OpenViewerFX(JPedal)在JavaFX应用程序中显示PDF文件。有些文件显示得很好,而另一些文件只显示不可打印的字符(在我自己创建的文档以及其他人创建的文档中)。 例如,请参见以下示例:

这是我的代码:

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”
  • 启用/禁用web优化
  • 包括所有字体
  • 包括开放式字体
但结果总是一样的


我可能做错了什么?

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

  • 您是否尝试启用jpedal日志记录
  • org.jpedal.PdfDecoder.getPageDecodeStatus(int-type)
    说明了什么,其中type是在
    org.jpedal.parser.DecodeStatus中定义的任何值

  • 我们使用的是补丁版本的ViewerFX,你能试试吗

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

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

  • 您是否也尝试了
    -Dorg.jpedal.inclusiveLogFilter=“memory,error”
    JVM选项

  • 尝试设置
    -Dverbose=true

  • 调用
    GUI.debugFX=true请参阅


  • 谢谢你的提示。我还没有尝试登录。我将在周一回来工作时测试它,并给你回复。我测试了你的建议,下面是我的结果:1。日志显示一个文档的“未知字体”不起作用,但不是所有2个文档。无法测试,因为“org.jpedal.parser.DecodeStatus”不存在(也不在任何其他包中)3。使用此版本不会改变任何内容4。添加JVM标志没有帮助(根本不需要,因为我在PDF中嵌入了字体)。不适用于Windows或Linux 6。程序不使用此选项启动(主类内存,无法找到或加载错误)7。添加此选项后,似乎什么也不做8。-->编译器错误“无法分配最终字段GUI.debugFx”我测试了IcePDF,它适用于所有测试的PDF文件,将切换到此。谢谢你的有用提示,+1
    //debug code
    LogWriter.log_name="/yourpath/log.txt";
    LogWriter.setupLogFile(true,0,"1.0","v",false);