设置打印机页面布局利润率为零(Set Printer PageLayout margin to ze

2019-10-23 02:16发布

我创建了一个小型的JavaFX应用程序,允许用户打印的节点。 我想保证金为零。 我用下面的下面的代码,但没有奏效。

printer = javafx.print.Printer.getDefaultPrinter();
pageLayout = printer.createPageLayout(Paper.JAPANESE_POSTCARD,  PageOrientation.PORTRAIT, 0.0f, 0.0f, 0.0f, 0.0f);

根据该文件,在过去的四个参数createPageLayout是边距(左,右,上,下)。 余由打印试验,但仍有一个0.5 inch margin的打印文档英寸

这是怎么回事? 任何想法?

Answer 1:

你是否面临hardware limitation issue即可以被应用于纸张边距取决于硬件/打印机上,而不仅仅是API来访问它。 在这种情况下,虽然JavaFX的允许你传递保证金值0 ,但他们后来重新分配,支持打印机最小值。

从的Javadoc :

需要知道什么是空白的值是法律应该首先获得使用HARDWARE_MINIMUM利润率页面布局客户端。

如果为指定的打印机不能支持布局,它会通过调整布局返回到支持的配置

您可以使用Printer.MarginType.HARDWARE_MINIMUM在创建布局,以检查允许的最低保证金。

pageLayout = printer.createPageLayout(Paper.JAPANESE_POSTCARD,  
             PageOrientation.PORTRAIT, Printer.MarginType.HARDWARE_MINIMUM);


Answer 2:

尝试getPrintableWidth()和getPrintableHeight()方法来检查的实际利润率是什么。 即使你在构造函数中设置一个0保证金,硬件可能会限制利润率为默认大小。



文章来源: Set Printer PageLayout margin to zero