java fxml打印文本流

问题描述

我正在构建一个计费应用程序。现在,我需要打印一张纸/帐单,我创建了一个textflow添加了我的元素,它是gui的一部分,但是现在当我单击打印时,它没有任何输出,但是当我关闭应用程序时,一些bg任务正在运行

@FXML
private void printClicked(ActionEvent event) {
     Printer printer = Printer.getDefaultPrinter();
    
    javafx.print.PageLayout pageLayout = printer.createPageLayout(
            Paper.A4,PageOrientation.PORTRAIT,Printer.MarginType.DEFAULT
    );
    PrinterJob job = PrinterJob.createPrinterJob();
    //it correctly finds the default printer
    
    boolean res=job.printPage(pageLayout,jTextFlow);
    if(res)
    {
        job.endJob();
    }
}

我需要打印的是左边的darkRed矩形

这是我的打印按钮,任何人都知道做错了什么?

进一步的短信显示我可以打印,但打印代码没有问题 具有此代码的矩形

try {
            PrinterJob job = PrinterJob.createPrinterJob();
            if (job != null) 
            {
                boolean success = job.printPage(new Rectangle(3,4));
                if (success) 
                {
                    System.out.println("Success");
                    System.out.println(job.getJobStatus().toString());
                    job.endJob();
                }
            }
        } catch (Exception e) 
        {
            System.out.println(e.getMessage());
        }

问题出在我的文字流上

这是由场景构建器自动生成的fxml文件中文本流的代码

<TextFlow fx:id="jTextFlow" layoutX="511.0" layoutY="61.0" prefheight="497.0" prefWidth="300.0" style="-fx-background-color: #c8d4f7;" AnchorPane.bottomAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" />

在我添加的初始化部分的fxml控制器中

jTextFlow.setStyle(" -fx-text-alignment: center;");

这是我用来向文本流中添加数据的功能

void updateTextFlow() {
    jTextFlow.getChildren().clear();
    Text headings = new Text("heading" + "\n");
    headings.setStyle("-fx-font-size: 30; -fx-fill: red;");
    Text SubHeads = new Text("Sub heading" + "\n");
    SubHeads.setStyle("-fx-font-size: 25; -fx-fill: yellow;");
    jTextFlow.getChildren().addAll(headings,SubHeads);
    for (Item item : PosITemList) {
        Text text1 = new Text(item.itmName + " : " + item.itemPrize + " x " + item.count + "\n");
        text1.setStyle("-fx-font-size: 20; -fx-fill: black;");
        jTextFlow.getChildren().add(text1);
    }
    Text Total = new Text("Total : " + PosTtl + "\n");
    Total.setStyle("-fx-font-size: 20; -fx-fill: red;");
    Text subTotal = new Text("Sub Total :" + PosSub + "\n");
    SubHeads.setStyle("-fx-font-size: 20; -fx-fill: yellow;");
    jTextFlow.getChildren().addAll(subTotal,Total);
}

如果你们中的任何一个都不知道答案,请大家投票赞成或提出一些建议,以便增加找到答案的可能性。谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)