如何打印 TextArea 的内容?
Posted
技术标签:
【中文标题】如何打印 TextArea 的内容?【英文标题】:How do I print the content of a TextArea? 【发布时间】:2019-08-29 09:12:19 【问题描述】:所以目前我正在尝试为我的记事本应用程序制作打印功能。我已经有一种工作打印功能,但它打印完整的 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();
我想要的: 仅显示字符串的打印,就像您尝试打印某些内容时任何其他记事本应用程序一样
我目前得到的: 带框架的全文区域。
【问题讨论】:
您可以将TextArea的文本包装成一个Text并打印出来。喜欢:printSetup(new Text(writeArea), Main.primaryStage);
我注意到的一个问题,第一行不可见,IDK 为什么。也许你也可以尝试一下,找出原因。
您好,感谢您的建议。但不知何故,我无法将 new Text
应用到我的写作区域......我只是迟钝还是根本不起作用?
【参考方案1】:
正如我在评论中提到的,您可以将其包装成文本,但由于某种原因第一行显示不正确。
解决方案是使用标签,例如:
printSetup(new Label(toPrint), Main.primaryStage);
【讨论】:
您好!谢谢您的帮助!它确实有效,至少有点。我不得不进一步调整它,但这是我使用的解决方案:String toPrint = writeArea.getText(); printSetup(new Label(toPrint), Main.primaryStage);
这是 janky af,但它有效。再次感谢。
我看不出有什么不同,但我很高兴能帮到你 ;)以上是关于如何打印 TextArea 的内容?的主要内容,如果未能解决你的问题,请参考以下文章