java - 将打印机页面布局边距设置为零

标签 java javafx javafx-8

我创建了一个小型 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/

相关文章:

java - 在 Android 中尝试 MYSQL 服务器时出现错误

java - PDFBox 图像元数据

java - 我可以创建一个直到媒体播放完毕才返回的函数吗?

布局中的 javaFX 圆圈不可见

java - 如何在 JavaFX 中创建带有图标的选项卡

java - 两个ArrayList 一个RecyclerView Adapter

java - 多个输入:将相同的输入添加到多个映射器以进行比较

java - java中的相对路径不正确

java - 格式化大十进制。 JavaFX

命令提示符中的 javafx 参数给出空值