2016-07-11 5 views
0

zu machen. Ich bin in FXML Scenebuilder und ich versuche, meine TableView (in borderpane center) zu bekommen und es in ein PDF zu legen. Ich verwende iText und erstelle ein PDF, lege ein Bild dazu, aber ich kann meine Borderpane-Daten oder TableView nicht bekommen.Ich versuche, die Zentraldaten meines Borderpane zu bekommen und es zu einem BufferedImage oder einem Bild

@FXML 
TableView<ItemList> table; 
@FXML 
TableColumn<ItemList, String> tableName; 
@FXML 
TableColumn<ItemList, String> tableCount; 
@FXML 
TableColumn<ItemList, String> tablePrice; 
@FXML 
TableColumn<ItemList, String> tableTotal; 
@FXML 
private BorderPane dneme; 

Mein Tisch ist in der Mitte von Borderpane. Ich habe versucht dneme.getCenter(). GetScene(). GetWindow() oder table.getScene(). GetWindow() Ich habe es ohne getCenter(), getScene() oder getWindow() auch versucht.

Mein Programm hat eine Tabelle, Daten werden hinzugefügt, und ich möchte nur meine Tabelle und legen Sie es in PDF. Nur Tisch ist in der Mitte von Borderpane. enter image description here

+0

Sie können eine 'TableView.snapshot()' auf Ihrer Tabelle tun, wo der Rückgabetyp WriteableImage ist. Das Problem mit einem Bild in Ihrer PDF ist, dass es sich um ein Bild und nicht um einen auswählbaren Text handelt. Aber es ist ein Fehler drin, wenn man versucht, ein Bildformat zu erstellen, für weitere Informationen siehe hier: http://stackoverflow.com/a/30995307/4170073 – NwDev

Antwort

0

Danke für Ihre Hilfe. Ich habe dasselbe gefunden, während ich es versuchte, und es hat am meisten für mich funktioniert. Mein Problem ist, dass es den Bildschirm Schnappschuss bekommt, aber es passt nicht in den Rahmen meiner PDF. Ich habe einen Teil davon geschnitten, aber wie gesagt, es hat funktioniert. Ich benutzte

WritableImage image = dneme.getCenter().snapshot(new SnapshotParameters(), null); 
    Document document = new Document(); 
    try { 
     PdfWriter.getInstance(document, new FileOutputStream("ImagesBOTTOMPDF.pdf")); 
     document.open(); 

     File outputfile = new File("d.png"); 
     ImageIO.write(SwingFXUtils.fromFXImage(image, null), "png", outputfile); 

     Image imageRight = Image.getInstance("d.png"); 
     document.add(imageRight); 

    } catch (FileNotFoundException | DocumentException i) { 
     System.err.println(i.getMessage()); 
    } 
    document.close(); 

Ich denke, ich ändere den Rahmen wenig und Problem wird gelöst. Es wird zur PNG-Datei meines Schnappschusses und png sieht gut aus, aber wenn es nach pdf exportiert wird, ändert es den Rahmen. (Sorry für mein schlechtes Englisch)

Verwandte Themen