Hi John! Thank you very much. I'lL check it out. Will take some time.
Kind regards, Siegfried - Siegfried Gstöttner [email protected] -----Ursprüngliche Nachricht----- Von: John Hewson [mailto:[email protected]] Gesendet: Donnerstag, 21. Juli 2016 20:50 An: [email protected] Betreff: Re: pdf viewer needed > On 21 Jul 2016, at 03:49, Gstöttner Siegfried > <[email protected]> wrote: > > Hi John! > > Thank you for your quick reply. Here is my code for having multiple labels > inside a VBox, which is located in a ScrollPane - with one problem inside the > loop... > > @FXML > private Button button; > @FXML > private Label label; > @FXML > private VBox scrollBox; > // @FXML > // private ScrollPane scrollPane; > > BufferedImage bufImage = null; > WritableImage image = null; > Label labelGraphics = new Label(); > Label labelGraphics2 = new Label(); > > PDDocument doc = PDDocument.load(file); > int countPages = doc.getNumberOfPages(); > PDFRenderer renderer = new PDFRenderer(doc); > > // approach two or more pages per document - for testing only > bufImage = renderer.renderImage(0, scale); > image = SwingFXUtils.toFXImage(bufImage, null); > scrollBox.getChildren().add(labelGraphics); > labelGraphics.setGraphic(new ImageView(image)); > > bufImage = renderer.renderImage(1, scale); > image = SwingFXUtils.toFXImage(bufImage, null); > scrollBox.getChildren().add(labelGraphics2); > labelGraphics2.setGraphic(new ImageView(image)); > > // one label per pdf-page > for (int i = 0; i < countPages; i++) { > bufImage = renderer.renderImage(i, scale); > image = SwingFXUtils.toFXImage(bufImage, null); > scrollBox.getChildren().add(new Label("labGraph" + i)); > // how to access Label named "labGraph" + i > // to do next acion setGraphic()? > > } > > doc.close(); > > The static approach for testing works. But how can i access the dynamically > created Label to proceed ahed with "'labGraph + i'.setGraphic(new > ImageView(image));”? So you’re creating a new Label which contains the text “labGraph0”.You don’t want that. What you want to do is actually: Label pageLabel = new Label(“”); pageLabel.setGraphic(new ImageView(image)); scrollBox.getChildren().add(pageLabel); > Next problem: graphics are rendered at different sizes according to the > content of the document. How could i get the renderer to compute an image > from any document that fits by width in my VBox? What you want to do is calculate the effective DPI which you want to render at and call renderImageWithDPI. You can calculate this using the width of the PDPage (you want the cropbox) from PDFBox, which is in pt and can be converted to px by multiplying by page dpi / screen dpi, which is usually 72/96 = 0.75. Reverse that calculation to go from px back to pt. — John > Thank's. > Thank's to Tilman for quickly replying too. > > Kind regards, > Siegfried > - > Siegfried Gstöttner > [email protected] > > -----Ursprüngliche Nachricht----- > Von: John Hewson [mailto:[email protected]] > Gesendet: Dienstag, 19. Juli 2016 19:12 > An: [email protected] > Betreff: Re: pdf viewer needed > > >> On 19 Jul 2016, at 05:34, Gstöttner Siegfried >> <[email protected]> wrote: >> >> Hi! >> >> I am pretty new to java and currently working on an application for printing >> serial letters in JavaFX. I would like to give the user an overview of the >> result in a simple pdf-viewer. Like that one shown in an example prior to >> ver2.0. Could anybody tell me how to implement this with the actual libry? >> Examples missing or i could not find them. Are there any experiences with >> usage of Java FX8 Swingnode class to display such a viewer? Thank you very >> much. > > Assuming you already have a PDDocument, and a Label named “pageView”, you can > render individual pages into the Label as follows: > > PDFRenderer renderer = new PDFRenderer(doc); BufferedImage bufImage = > renderer.renderImage(0); Image image = > SwingFXUtils.toFXImage(bufImage, null); pageView.setGraphic(new > ImageView(image)); > > I’d recommend taking this approach and letting JavaFX handle any scrolling of > the Label. You can then have multiple labels for multiple pages, or a single > label and next/prev page buttons. > > — John > >> Kind regards, >> Siegfried >> - >> Siegfried Gstöttner >> [email protected] >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]

