Как распечатать содержимое TextArea? - PullRequest
0 голосов
/ 08 апреля 2019

Так что в настоящее время я пытаюсь создать функцию печати для своего приложения «Блокнот». У меня уже есть какая-то рабочая функция Print, но она печатает полную текстовую область, а не только строку, которая в нее записана.

Я уже пытался заставить его просто напечатать строку, но 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();
        }
    }

Что я хочу иметь: Отпечаток, который показывает только строку, как и любое другое приложение блокнота, если вы пытаетесь что-то напечатать

Что я сейчас получаю: Полная текстовая область с рамкой.

1 Ответ

1 голос
/ 08 апреля 2019

Как я уже упоминал в комментарии, вы можете заключить его в текст, но тогда первая строка по какой-то причине не отображается правильно.

Решение было бы использовать метку вместо:

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

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...