Отображение страницы PDF. js из JavaFX в WebView - PullRequest
0 голосов
/ 09 мая 2020

Загрузка документа из WebEngine с помощью m_engine.load ("... / web / viewer. html? File = compressed.tracemonkey-pldi-09.pdf"); работает хорошо.

В данном контейнере PDF. js, похоже, работает хорошо, что бы я ни пытался, документ отображается правильно и я могу перемещаться.

Событие отправляется в WeEngine правильно как:

        m_engine.getLoadWorker().stateProperty().addListener(
            new ChangeListener<State>() {
                public void changed(ObservableValue ov, State oldState, State newState) {
                    if (newState == State.SUCCEEDED) {
                        m_engine.executeScript("PDFViewerApplication.page=12;");
                    }
                }
            });

Однако executeScript не работает. Тихо, т.е. без исключений.

Если я начну без документа pdf и в ChangeListener сделаю: ... m_engine.executeScript ("PDFViewerApplication.open ('compressed.tracemonkey-pldi-09.pdf')") ; ... документ загружен правильно, это означает, что объект PDFViewerApplication в порядке.

Мне не удалось найти документацию по PDFViewerApplication

Ответы [ 2 ]

1 голос
/ 10 мая 2020

Если ваша настоящая цель - просто иметь возможность просматривать PDF-файлы внутри приложений JavaFX, вы можете посмотреть здесь: PDFViewer Внутренне он использует Apache PDFBox, который очень мощный.

0 голосов
/ 12 мая 2020

Поскольку метод «open» в PDFViewerApplication хорошо работает изнутри ChangeListener, вот как c может быть изначально размещен на желаемой странице:

PDF. js код инициализируется первым в нашем JavaFX код, не указав документ, который нам нужно отобразить. Например:

m_engine.load("http://localhost/Q/modules/viewers/pdf/web/viewer.html");

И следующее загрузит документ и разместит его на нужной странице:

        m_engine.getLoadWorker().stateProperty().addListener(
            new ChangeListener<State>() {
                public void changed(ObservableValue<? extends State> ov, State oldState, State newState) {
                    if (newState == State.SUCCEEDED) {
                        m_engine.executeScript("PDFViewerApplication.initialBookmark='page=5';PDFViewerApplication.open('compressed.tracemonkey-pldi-09.pdf');");
                    }
                }
            });
...