JavaFX PDF File am Bildschirm anzeigen?
Ich nutze die library PDFBox und möchte gerne wissen wie ich es an Bildschirm es anzeigen kann. Habe es mit TextArea probiert aber natürlich wird der Text angezeigt.
Wie mache ich es, dass es auch Bilder anzeigt und was kann ich mit TextArea ersetzen denn es kann nur Text anzeigen?
Ich danke schon in Vorraus.
EDIT: Habe vergesse Java Swing in mein .pom einzufügen.
1 Antwort
Der einfachste Weg wäre wohl die Konversion in ein Bild, welches du dann in ein oder mehrere ImageView-Komponenten (je nachdem, wie viele Seiten das Dokument hat) renderst.
Bei einem einseitigen PDF-Dokument dürfte es sich ungefähr so gestalten:
var document = PDDocument.load(getClass().getResourceAsStream("path/to/pdf/file"));
var renderer = new PDFRenderer(document);
var image = renderer.renderImage(0);
var container = new Pane();
var imageView = new ImageView(SwingFXUtils.toFXImage(image, null));
container.getChildren().add(imageView);
var scene = new Scene(container, image.getWidth(), image.getHeight());
primaryStage.setScene(scene);
primaryStage.show();
Für eine Darstellung von Text und Bild in einer Komponente eignet sich andernfalls das TextFlow-Element.
Oder du wandelst das Dokument mittels Pdf2Dom in ein HTML-Dokument um, welches du folgend in ein WebView hineinlädst.