开源PDFViewer Javafx

开源PDFViewer Javafx,pdf,javafx,pdf-viewer,Pdf,Javafx,Pdf Viewer,我想在我的javafx应用程序中显示一个pdf文件。到目前为止,我已经尝试了很多不走运的事情,包括pdf.js html pdf viewer,但我得到了以下例外: Caused by: netscape.javascript.JSException: SyntaxError: Invalid character '\u8216' 有谁知道有什么更简单的方法可以做到这一点,而且应该是免费和开源的。谢谢。我刚刚创建了一个你可以签出的应用程序。您可能会发现一个免费的应用程序,它可以将PDF转换为

我想在我的javafx应用程序中显示一个pdf文件。到目前为止,我已经尝试了很多不走运的事情,包括pdf.js html pdf viewer,但我得到了以下例外:

 Caused by: netscape.javascript.JSException: SyntaxError: Invalid character '\u8216'

有谁知道有什么更简单的方法可以做到这一点,而且应该是免费和开源的。谢谢。

我刚刚创建了一个你可以签出的应用程序。您可能会发现一个免费的应用程序,它可以将
PDF
转换为
HTML
。此转换是使用。我个人使用Acrobat Reader转换我的文件,目前我正在尝试实现我希望我的应用程序具有的所有不同功能

import java.io.File;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

/**
 *
 * @author blj0011
 */
public class PDFToHTMLExampleApp extends Application
{

    @Override
    public void start(Stage primaryStage)
    {
        File file = new File("CookBook/index.html");

        WebView webView = new WebView();
        WebEngine webEngine = webView.getEngine();
        webEngine.load(file.toURI().toString());

        StackPane root = new StackPane();
        root.getChildren().add(webView);

        Scene scene = new Scene(root, 700, 1000);

        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args)
    {
        launch(args);
    }

}
我之所以选择这个网站进行转换,是因为他们已经有了缩放功能和处理页面的功能。失败之处在于他们禁用了搜索功能。

我有付费版的Acrobat Reader。我使用它将
PDF
转换为
HTML
。然后我只需使用
WebView
来显示
HTML
。您可以使用免费的在线
PDF
HTML
转换器。是一个好的。但我希望它显示在我的脱机应用程序中。PDF是由应用程序脱机生成的,当您将
PDF
转换为
HTML
后,应在其中显示。您只需将文件放在文件夹中。您可以做的另一件事是编写自己的转换器。您可以将
PDF
转换为图像,并使用图像查看
PDF
。我会尝试一下……非常感谢。但是我的局限性是我无法手动将PDF转换为html。您好,您可以尝试使用JOD converter或qoppa将PDF转换为html。我不能使用这个解决方案,因为我担心从pdf到html的转换会不一样。Hello@JpSilver。我认为现在最好做的事情之一是使用将PDF转换为图像。然后使用
ImageView
显示不同的页面。