Итак, в настоящее время я пытаюсь сделать функцию печати для своего приложения «Блокнот». У меня уже есть своего рода работающая функция Print, но она печатает полную 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();
}
}
Что я хочу иметь: Печать, которая показывает только строку, как и любое другое приложение блокнота, если вы пытаетесь что-то напечатать.
Что я сейчас получаю: Полное текстовое поле с рамкой.
Привет, спасибо за эту идею. Но почему-то я не могу применить это new Text к своей области записи... Я просто отсталый или это вообще не работает?





Как я упоминал в комментарии, вы можете обернуть его в текст, но тогда первая строка по какой-то причине отображается неправильно.
Решением было бы использовать метку вместо этого, например:
printSetup(new Label(toPrint), Main.primaryStage);
Всем привет! Спасибо за помощь! Это действительно сработало, по крайней мере. Мне пришлось немного подправить его, но вот решение, которое я использовал: String toPrint = writeArea.getText(); printSetup(new Label(toPrint), Main.primaryStage); Это дрянной аф, но он работает. Спасибо еще раз.
Я не вижу никакой разницы, но я рад, что смог вам помочь ;)
Вы можете обернуть текст TextArea в текст и распечатать его. например:
printSetup(new Text(writeArea), Main.primaryStage);Одна проблема, которую я заметил, что первая строка не видна, и IDK почему. Может быть, вы также можете поэкспериментировать и выяснить, почему.