2009-12-04 5 views
3

J'ai essayé d'utiliser JasperReports pour imprimer dans une résolution supérieure à 72 dpi, sans succès.JasperReports avec une résolution différente de 72dpi

Je dois utiliser une résolution supérieure à 72 ppp car je vais imprimer sur ces étiquettes adhésives pré-formatées, qui nécessitent un certain niveau de précision lors du réglage des positions. Mais, comme JasperReports ne peut utiliser que des pixels, et AFAIK ne supporte que la configuration 72dpi, je ne peux pas définir correctement les marges, les espacements, etc. Par exemple, quand vous avez besoin d'une configuration de 1mm, vous devez convertir en pixels, ce qui serait 3px automatiquement converti par iReport (en fait, la valeur réelle est ~ 3.78px, mais le pixel ne peut pas être décimal et iReport tronque au lieu de l'arrondir). Mais, lorsque vous le calculez en mm (lorsque vous imprimez, par exemple), il obtient en fait une taille de ~ 0,79 mm, pas l'ancien 1mm dont vous aviez besoin. Si vous tenez compte de la valeur arrondie (4px au lieu de 3px), vous obtiendrez une valeur imprimée finale de ~ 1,06 mm, toujours incorrecte.

Même si vous pensez que 0,06 mm ou 0,21 mm n'a pas de valeur, c'est en réalité lorsque vous avez 20 étiquettes séquencées ou plus, et cette marge d'erreur augmente dès que vous augmentez le nombre d'étiquettes. Enfin, est-il possible d'utiliser JasperReports pour imprimer des rapports avec une précision milimétrique ou y a-t-il une solution de contournement pour ce problème?

Répondre

1

Qu'est-ce que le travail comme une sorte de solution de contournement utilisait JRGraphics2DExporterParameter.ZOOM_RATIO comme paramètre PrinterExporter, avec le rapport de zoom approprié comme flotteur. Par exemple, supposons que j'ai une configuration de 144dpi (2 x 72dpi), la solution ZOOM ci-dessus a fonctionné si j'ai passé 0.5f en paramètre, car elle imprime la taille équivalente de 72dpi. Considérant que c'est une solution de contournement, une vraie solution DPI serait appréciée.

+0

Bonne solution si vous travaillez avec JRGraphics2DExporter. Maintenant, je cherche une solution similaire pour JRPDFExporter –

0

Essayez

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

printerExporter.setParameter(
    JRPrintServiceExporterParameter.PRINT_REQUEST_ATTRIBUTE_SET, attrs); 

(de here)

+0

Merci pour la réponse, mais je ne pouvais pas le faire fonctionner. J'ai été capable de réaliser une solution similaire, que je vais poster maintenant. Mais la solution DPI "officielle" serait meilleure, si je pouvais juste trouver comment le faire fonctionner. – Renato

Questions connexes