如何打印 TextArea 的内容?

How do I print the content of a TextArea?

所以目前我正在尝试为我的记事本应用程序制作打印功能。我已经有一种可用的打印功能,但它不仅打印写入其中的字符串,还打印整个 TextArea。

我已经尝试让它只打印一个字符串,但是 PrintJob 无法处理它,因为它需要实际的 TextArea,文本被写入其中。

我当前的打印资料:

public void doPrint() {
        String toPrint = writeArea.getText();
        printSetup(writeArea, Main.primaryStage);
    }

    private final Label jobStatus = new Label();

    private void printSetup(Node node, Stage owner)
    {
        // Create the PrinterJob
        PrinterJob job = PrinterJob.createPrinterJob();

        if (job == null)
        {
            return;
        }

        // Show the print setup dialog
        boolean proceed = job.showPrintDialog(owner);

        if (proceed)
        {
            print(job, node);
        }
    }

    private void print(PrinterJob job, Node node)
    {
        // Set the Job Status Message
        jobStatus.textProperty().bind(job.jobStatusProperty().asString());

        // Print the node
        boolean printed = job.printPage(node);

        if (printed)
        {
            job.endJob();
        }
    }

我想要的: 仅显示字符串的打印,就像任何其他记事本应用程序一样,如果您尝试打印某些东西

我目前得到的: 带框架的完整文本区域。

正如我在评论中提到的,您可以将其包装成文本,但由于某种原因第一行显示不正确。

解决方案是使用标签代替:

printSetup(new Label(toPrint), Main.primaryStage);