Question

D'accord, voici mon problème:

Nous utilisons FOP pour créer " pretty " rapport de sortie. Nous utilisons l'option pdf si l'utilisateur souhaite un fichier, AWT pour l'aperçu et l'option -print pour les imprimer. Nous utilisons FOP 0.25.x, qui, je le reconnais tout à fait, n’est pas la version la plus récente, mais passer à la version 0.95 semble être une tâche non-triviale que je ne souhaite pas nécessairement entreprendre.

Quoi qu’il en soit, l’un de nos utilisateurs a remarqué que lors de l’impression de cartes d’identité (générées via l’option FOP -print) sur l’imprimante de cartes d’identité, les images figurant sur les cartes (images des employés) étaient altérées. .sort de comme des points et des lignes verts et rouges. Nous avons également découvert que si nous envoyions exactement la même demande d’impression à l’un de nos imprimantes laser couleur HP, l’impression était bonne. Pour ajouter à l’étrangeté, si nous utilisons FOP pour créer un fichier PDF de la carte d’identité, puis l’imprimons via Acrobat Reader sur l’imprimante à cartes, la copie est parfaite.

J'ai finalement découvert que cela avait quelque chose à voir avec la mise à l'échelle des images ... nous réduisions les images à une hauteur de 600 px pour atteindre quelque chose comme 120px. Si je réduisais les images, même en les divisant par deux, la corruption diminuait sensiblement. De même, lorsque j'ai agrandi les images, la corruption a augmenté.

Alors ma question: est-ce que quelqu'un a une idée de ce qui se passe ici? Ou a déjà rencontré une telle chose?

Étant donné que je ne sais pas pourquoi cela se produit, je ne sais pas comment résoudre le problème à la racine du problème, mais j'ai déjà effectué diverses solutions de contournement:

1) Utilisez FOP pour créer un pdf de l’image, puis imprimez-le via Java. Cela semble une réponse évidente, mais certaines recherches sur Google ont montré que l'impression d'un fichier PDF via Java n'est pas anodine. J'ai vu le projet PDF Renderer sur java.net, mais il semble assez volumineux pour une seule application très spécifique.

2) Essayez de redimensionner les images avant de les transmettre à FOP. Cela semblait également assez simple, mais nos différents utilisateurs peuvent configurer les feuilles de style pour ces cartes d’identité comme ils le souhaitent et en utilisant le paramètre "pt". et " in " Le dimensionnement en eux semble être assez commun ... Je ne connais pas de bon moyen de mapper cela à un redimensionnement en pixels.

Si quelqu'un a une idée de la cause fondamentale, des moyens de faire en sorte que ces solutions de rechange fonctionnent et / ou une autre idée, vous auriez une dette envers moi.

Était-ce utile?

La solution 2

J'ai fini par faire la deuxième chose que je mentionne dans la question initiale ... c'est-à-dire. en le redimensionnant avant de le donner à la FOP. J'ai découvert que je pouvais récupérer le dpi de l'imprimante sur laquelle j'imprimais et faire quelques calculs pour obtenir la taille en pixels. Semble fonctionner parfaitement dans tous mes tests ... pas une solution réelle mais une solution de contournement adéquate.

Autres conseils

Explication la plus certaine:
corruption d'image? c'est un bug.

Pourquoi ne pas utiliser 0.95? Tôt ou tard, vous devrez mettre à niveau, le consortium Apache ne sera pas correction de bugs dans les versions 0.25.x.

Vous ne pouvez pas espérer trouver de solution de rechange à tous les bugs qui pourraient survenir à l'avenir.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top