3

我一直在尝试使用 JasperReports 以高于 72dpi 的分辨率打印,但没有成功。

我需要使用高于 72dpi 的分辨率,因为我要打印那些预先格式化的不干胶标签,这些标签在设置位置时需要一定的精度。但是,由于 JasperReports 只能使用像素,而 AFAIK 仅支持 72dpi 配置,我无法正确设置边距、间距等。

例如,当你需要1mm的配置时,你需要转换为像素,这将是iReport自动转换的3px(实际上,实际值是~3.78px,但像素不能是十进制,iReport会截断而不是四舍五入它)。但是,当您将其计算回 mm 时(例如,当您打印时),它实际上得到的尺寸约为 0.79mm,而不是您需要的旧 1mm。如果考虑圆形值(4px 而不是 3px),您的最终打印值约为 1.06mm,仍然是错误的。

即使您认为 0.06mm 或 0.21mm 没有什么价值,但实际上当您有 20 个或更多测序标签时,它才是有价值的,并且随着标签数量的增加,这种误差范围会变得更大。

最后,有什么方法可以使用 JasperReports 打印具有军事精度的报告,或者是否有解决此问题的方法?

4

3 回答 3

1

作为一种解决方法起作用的是使用 JRGraphics2DExporterParameter.ZOOM_RATIO 作为 PrinterExporter 参数,并使用适当的缩放比例作为浮点数。

例如,假设我有一个 144dpi 配置(2 x 72dpi),如果我将 0.5f 作为参数传递,则上述 ZOOM 解决方案有效,因为它打印 72dpi 等效尺寸。

考虑到它是一种解决方法,将不胜感激真正的 DPI 解决方案。

于 2009-12-04T16:38:04.247 回答
0

尝试

PrintRequestAttributeSet attrs = new HashPrintRequestAttributeSet();
attrs.add(new PrinterResolution(203, 203, ResolutionSyntax.DPI));

printerExporter.setParameter(
    JRPrintServiceExporterParameter.PRINT_REQUEST_ATTRIBUTE_SET, attrs);

(从这里

于 2009-12-04T07:41:01.620 回答
0

我在 Jasperrport 论坛上对这个问题的回答中有一个可行的解决方案:

您可以创建具有良好分辨率的大报告图像并将图像缩放为小图像。

http://community.jaspersoft.com/questions/517024/export-report-image-jpg-bmp-or-any-format

于 2014-05-12T09:14:01.197 回答