如何打印 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);
所以目前我正在尝试为我的记事本应用程序制作打印功能。我已经有一种可用的打印功能,但它不仅打印写入其中的字符串,还打印整个 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);