JavaFX PrinterJob добавление поля во время печати, удаление его со страницы

#java #javafx

#java #javafx

Вопрос:

У меня есть вся моя информация в VBox, поэтому я пытаюсь ее распечатать, но она продолжает добавлять ОГРОМНЫЙ запас и выталкивает половину VBox с моего экрана. Я попытался передать его как узел, сделав поле 0, отключив ВСЕ отступы в моем Main.java , но ничего не сработало. Я печатаю в формате PDF, поэтому я не верю, что проблема в моем принтере. Любая помощь была бы очень полезна! (Кроме того, я довольно новичок, поэтому, пожалуйста, не поджаривайте меня

 public class PrintStructure {

public void print(final VBox node)
{

    try
    {
        // Select printer
        final PrinterJob job = Objects.requireNonNull(PrinterJob.createPrinterJob(), "Cannot create printer job");
        final Scene scene = Objects.requireNonNull(node.getScene(), "Missing Scene");

        if (! job.showPrintDialog(scene.getWindow()))
            return;

        // Scale image to full page

        final Printer printer = job.getPrinter();
        final Paper paper = job.getJobSettings().getPageLayout().getPaper();
        final PageLayout pageLayout = printer.createPageLayout(paper,
                PageOrientation.PORTRAIT, Printer.MarginType.HARDWARE_MINIMUM);
        final double scaleX = pageLayout.getPrintableWidth() / node.getWidth();
        final double scaleY = pageLayout.getPrintableHeight() / node.getHeight();
        final Scale scale = new Scale(scaleX, scaleY);
        node.getTransforms().add(scale);

        if (job != null) {
            boolean success = job.printPage(node);
            if (success) {
                System.out.println("Done printing!");
                job.endJob();
                node.getTransforms().remove(scale);
            }
        }
    }
    catch (Exception ex)
    {
        System.out.println("There was an error");
    }
}
  

}

Комментарии:

1. Перед печатью убедитесь, что на печати отображаются настройки. Таким образом, вы можете печатать в формате PDF и экономить бумагу. Это также позволит вам поиграть с настройками печати. Может быть, вы сможете получить некоторое представление о том, что происходит не так, используя их. Это также позволит вам играть с настройками печати в вашем коде, не тратя бумагу.

2. @Sedrick Да, я печатаю в формате PDF, поэтому я не думаю, что это проблема с моим принтером