JasperReports с разрешением, отличным от 72 точек на дюйм - PullRequest
3 голосов
/ 04 декабря 2009

Я пытался использовать JasperReports для печати с разрешением выше 72 dpi, но безуспешно.

Мне нужно использовать разрешение выше 72 точек на дюйм, потому что я собираюсь печатать на тех предварительно отформатированных клейких этикетках, которые требуют определенного уровня точности при настройке позиций. Но поскольку JasperReports может использовать только пиксели, а AFAIK поддерживает только конфигурацию 72 точек на дюйм, я не могу правильно задать поля, интервалы и т. Д.

Например, когда вам нужна конфигурация 1 мм, вам нужно конвертировать в пиксели, которые будут автоматически преобразованы iReport в 3 пикселя (на самом деле реальное значение составляет ~ 3,78 пикселя, но пиксель не может быть десятичным, а iReport усекается). вместо округления). Но когда вы вычисляете его обратно в мм (например, при печати), он на самом деле получает размер ~ 0,79 мм, а не старый 1 мм, который вам нужен. Если принять во внимание округленное значение (4px вместо 3px), у вас будет конечное напечатанное значение ~ 1,06 мм, но это все равно неправильно.

Даже если вы думаете, что 0,06 мм или 0,21 мм не являются чем-то ценным, это действительно так, когда у вас есть 20 или более последовательных меток, и этот предел погрешности увеличивается, как только вы увеличиваете количество меток.

Наконец, есть ли способ использовать JasperReports для печати отчетов с точностью до миллиметра или есть способ обойти эту проблему?

Ответы [ 3 ]

1 голос
/ 04 декабря 2009

То, что работало как своего рода обходное решение, использовало JRGraphics2DExporterParameter.ZOOM_RATIO в качестве параметра PrinterExporter, с правильным коэффициентом масштабирования как float.

Например, предположим, что у меня есть конфигурация 144dpi (2 x 72dpi), вышеупомянутое решение ZOOM сработало, если я передал 0.5f как параметр, потому что он печатает эквивалентный размер 72dpi.

Учитывая, что это обходной путь, будет приветствоваться реальное решение DPI.

0 голосов
/ 12 мая 2014

возможное решение в моем ответе на этот вопрос на форуме Jasperrport:

Вы можете создать большое изображение отчета с хорошим разрешением и уменьшить его до небольшого.

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

0 голосов
/ 04 декабря 2009

Попробуйте

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

printerExporter.setParameter(
    JRPrintServiceExporterParameter.PRINT_REQUEST_ATTRIBUTE_SET, attrs);

(из здесь )

...