icepdf не отображается на экземпляре Linux в JFrame - PullRequest
0 голосов
/ 21 мая 2018

Я использую icepdf в своем веб-проекте.Он отлично работает, когда я запускаю этот проект в Eclipse, а также запускаю, когда я использую этот проект war на tomcat версии 8/9.Но когда я разворачиваю эту войну в экземпляре Linux, все идет хорошо, но pdf не отображается в JFrame.Моя версия Java и версия Tomcat также такие же, как я использую локально.

Вот мой код

import org.icepdf.ri.common.SwingController;
import org.icepdf.ri.common.SwingViewBuilder;
import java.io.InputStream;
import javax.swing.*; 
public class PdfPreview {
public static void pdfPreview(InputStream stream) {

    // build a component controller
    SwingController controller = new SwingController();

    SwingViewBuilder factory = new SwingViewBuilder(controller);

    JPanel viewerComponentPanel = factory.buildViewerPanel();

    // add interactive mouse link annotation support via callback
    controller.getDocumentViewController().setAnnotationCallback(
            new org.icepdf.ri.common.MyAnnotationCallback(
                    controller.getDocumentViewController()));

    JFrame applicationFrame = new JFrame();
    applicationFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    applicationFrame.getContentPane().add(viewerComponentPanel);

    // Now that the GUI is all in place, we can try openning a PDF
    controller.openDocument(stream, "Pdf Viewer", null);
    // show the component
    applicationFrame.pack();
    applicationFrame.setVisible(true);
}}

Здесь stream исходит из источника

1 Ответ

0 голосов
/ 21 мая 2018

Средство просмотра на основе Swing предназначено для работы в качестве отдельного приложения в качестве толстого клиента.Ваш код, вероятно, работает нормально на сервере, но графический интерфейс будет загружен в системе сервера, а не в вашей системе.Также может возникать безголовое исключение, когда сервер пытается загрузить подсистему Swing.

Если вы хотите запустить приложение Viewer через веб-сервер, вам необходимо создать и развернуть приложение Java WebStart (JWS).Пример здесь, http://anonsvn.icesoft.org/repo/icepdf/tags/icepdf-6.3.0/icepdf/examples/jws/.Вам нужно будет немного поработать над подписью jar-файлов.

Вы также можете использовать библиотеку ICEpdf для сохранения страницы документа PDF в виде изображения, а затем использовать Tomcat для обслуживанияизображение для запрашивающего клиента.Существует пример кода, который использует JSF / ICEfaces http://anonsvn.icesoft.org/repo/icepdf/tags/icepdf-6.3.0/icepdf/examples/icefaces/.Захват ядра выполняется этим классом сервлетов, http://anonsvn.icesoft.org/repo/icepdf/tags/icepdf-6.3.0/icepdf/examples/icefaces/src/main/java/org/icepdf/examples/jsf/viewer/servlet/PdfRenderer.java

...