使用JSP和Jasper Reports,我制作了一个用于打印A4标签页的应用程序。

我必须根据不同的页面(2×5、2×7、3×10和3×11网格),不同的打印机(京瓷,OKI和HP)配置应用程序(在要生成的PDF页面上设置对齐)不同的PDF查看器(Adobe,Foxit和Nitro)。

示例:我在Jasper Reports中设置了一个A4页面,其网格为2×5,拥有Foxit Reader的用户将在Kyocera上打印该页面。如果另一个用户也有Kyocera,但使用的是Adobe Reader,则列之间的间隔会变小。但是,如果用户使用Foxit Reader,但可以在OKI上打印,则整个文档将保留甚至被剪切。

配置每个单独的标签页面是不可避免的,但是我是否可以不必为特定的PDF查看器或打印机(至少其中之一)设置页面对齐方式?这可能是跳过PDF生成或所有打印机都将解释的某些常规配置的一种方法-不管PDF查看器或打印机如何,我的页面打印都完全相同。

最佳答案

您确定这不是导致问题的Foxit Reader和/或Adobe Reader中的设置吗?

我知道在Adobe Reader中,Page Sizing & Handling下的打印对话框中有一个设置。他们应该使用Actual Size,以免对图像进行任何缩放或操作。



在福昕阅读器中,它位于Print Handling下。您需要将缩放类型设置为None。默认值似乎是Fit to Printer Margins



您不必为每个PDF阅读器和/或打印机的每个版本和组合做任何不同的事情。这是维护方面的噩梦,您不应该尝试执行此操作。他们每次购买新打印机时都必须进行更改,并且有可能在升级阅读器时进行更改。

最好的选择是弄清楚他们为什么会产生不同的结果,并解决该问题,而不是强求问题。我很确定这是与您的用户有关的培训问题,告诉他们这些设置应该可以解决问题。



更新:经过更多的挖掘之后,似乎可以在导出时设置“打印缩放比例”的值。创建JRPdfExporter后,需要将JRPdfExporterParameter.PRINT_SCALING设置为JRPdfExporterParameter.PRINT_SCALING_NONE

exporter.setParameter(JRPdfExporterParameter.PRINT_SCALING, JRPdfExporterParameter.PRINT_SCALING_NONE);


我不知道这是否也适用于Foxit Reader,但我认为会。

09-10 04:19
查看更多