2016-06-25 137 views
3

所以我有一个简单的选项卡,它包含几个网格窗格。在你从ListView中选择一个名字后,数据库中的数据会显示在右边(查看我的gui链接)。有一个带有“Stampaj”文本的按钮,英文为“Print”。当它被按下时,它会打印选项卡的右侧(带有数据的网格窗格)。我的程序正在打印我想要的内容,但不会打印它的属性(打印后检查链接)。 (PDF格式)打印后https://postimg.org/image/bmtwbhxv5/在JavaFX中打印节点

数据链接:

链接我的GUI(标签)的https://postimg.org/image/elp9ugvlt/

方法的代码打印我的节点有:

public void print(final Node node) { 
    PrinterJob job = PrinterJob.createPrinterJob(); 
    Printer printer = Printer.getDefaultPrinter().getDefaultPrinter(); 
    PageLayout pageLayout = 
     printer.createPageLayout(Paper.A4, PageOrientation.PORTRAIT, Printer.MarginType.EQUAL); 
    JobSettings jobSettings = job.getJobSettings(); 
    jobSettings.setPageLayout(pageLayout); 
    boolean printed = job.printPage(node); 
    if (printed) { 
     job.endJob(); 
    } 
} 

现在当我调用这个方法时,我转发的参数是GridPane,其中包含标签和其他与该数据相关的组件(GUI的右侧)。我试过用我当前选项卡上的那些GridPanes切换位置,然后打印属性(从页面开始)。我知道他为什么要这样打印,但我想知道是否有办法将该文本移动到页面的开头并正常打印,而无需切换位置并按照它的方式离开我的GUI?

+0

你可能会发现这个有用https://dzone.com/articles/introduction-example-javafx-8 – GOXR3PLUS

+0

我知道那篇文章,我试过了,但它也调整字体在我的GUI如果我记得corectly并仍然打印相同的文件(只能使用更大的字体)。 –

回答

0

你是如何布置GridPanes的?看起来您可能会在GridPane上设置属性,将它移到屏幕右侧,translateX或layoutX,这就是为什么当您将它移动到UI左侧时它会正确打印。

当您将它发送给打印机时,它仍然会设置这些属性,以便在页面上移动它。您可以在打印之前重置GridPane上的这些属性,或者更改视图以使用另一个GridPanes容器,因此您无需首先将它们设置为像HBox或SplitPane那样。