我正在使用 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文档创建的。我使用标准字体和仅标准字符。我在创建文件时测试了几个设置,包括
但总是一样的结果。
我可能做错了什么?
答案 0 :(得分:1)
对我来说似乎是一个字体问题。调试输出在过去帮助了我 - 至少我看到了一些错误消息。我不太确定正确的选项是什么,但请尝试以下方法:
//debug code LogWriter.log_name="/yourpath/log.txt"; LogWriter.setupLogFile(true,0,"1.0","v",false);
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。