#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, поэтому я не думаю, что это проблема с моим принтером