我创建了一个小型的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
的打印文档英寸
这是怎么回事? 任何想法?
你是否面临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);
尝试getPrintableWidth()和getPrintableHeight()方法来检查的实际利润率是什么。 即使你在构造函数中设置一个0保证金,硬件可能会限制利润率为默认大小。