JavaFX: отображение PDF в WebView

Мне нужно отобразить PDF-файл внутри стандартного WebView JavaFX. Я предполагал, что легко смогу сделать это вот так.

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

public class ShowPdfTest extends Application {
    public static void main(String[] args) {
        launch();
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        WebView webView = new WebView();
        WebEngine engine = webView.getEngine();
        Scene scene = new Scene(webView);
        primaryStage.setScene(scene);
        primaryStage.show();

//        engine.load("https://www.google.com");
        engine.load("http://www.orimi.com/pdf-test.pdf");
    }
}

Я был неправ. Ничего не произошло. Похоже, что в WebEngine нет встроенного PDF-Renderer. Я попробовал JxBrowser, который работал нормально, но это довольно дорогая альтернатива.

Итак, есть ли способ отобразить PDF-файл непосредственно внутри компонента WebView по умолчанию?


person Anton Horst    schedule 12.07.2017    source источник
comment
Вы можете использовать Mozilla Pdf.js в своем WebView.   -  person Cem Ikta    schedule 13.07.2017
comment
Хорошо, но что, если у меня есть что-то подобное? cs.tut.fi/~jkorpela/html/iframe-pdf. html   -  person Anton Horst    schedule 13.07.2017
comment
Вам не нужен iframe для Pdf.js! Вы можете вызвать свой файл PDF с помощью Pdf.js в WebView.   -  person Cem Ikta    schedule 13.07.2017
comment
Нет, я понимаю, что могу использовать Pdf.js для отображения PDF внутри WebView. Но моя цель — динамически отображать PDF-файлы, как в любом другом браузере. Поэтому, если на веб-странице есть встроенный PDF-файл внутри iframe или JavaScript, я хочу иметь возможность отображать всю страницу со встроенным PDF-файлом.   -  person Anton Horst    schedule 13.07.2017


Ответы (1)


JxBrowser, который работал нормально, но является довольно дорогой альтернативой.

Если ваше приложение является проектом с открытым исходным кодом, вы можете получить лицензию JxBrowser с открытым исходным кодом здесь< /а>.

person Nikita Shvinagir    schedule 28.08.2017