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));"?

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?

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]

Reply via email to