我创建了一个小型 Javafx 应用程序,允许用户打印节点。我希望 margin 为零。我使用了下面的代码,但它不起作用。
printer = javafx.print.Printer.getDefaultPrinter();
pageLayout = printer.createPageLayout(Paper.JAPANESE_POSTCARD, PageOrientation.PORTRAIT, 0.0f, 0.0f, 0.0f, 0.0f);
根据文档,createPageLayout
中的最后四个参数是边距(Left、Right、Top、Bottom)。我进行了打印测试,但打印文档中仍有 0.5 英寸边距
。
发生什么事了?有什么想法吗?
最佳答案
您面临硬件限制问题
,即可以应用于纸张的边距取决于硬件/打印机,而不仅仅是用于访问它的API
。在这种情况下,虽然 JavaFX 允许您将边距值作为 0
传递,但稍后会重新分配它们以支持打印机最小值。
来自Javadocs :
A client that needs to know what margin values are legal should first obtain a PageLayout using the HARDWARE_MINIMUM margins.
If the printer cannot support the layout as specified, it will adjust the returned layout to a supported configuration
您可以使用Printer.MarginType.HARDWARE_MINIMUM
创建布局时,检查允许的最小边距。
pageLayout = printer.createPageLayout(Paper.JAPANESE_POSTCARD,
PageOrientation.PORTRAIT, Printer.MarginType.HARDWARE_MINIMUM);
关于java - 将打印机页面布局边距设置为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30206149/