Impression avec un programme Eclipse RCP
-
22-09-2019 - |
Question
Je cherche un bon moyen standard pour générer « sortie » dans mon programm RCP et l'imprimer. Cela devrait fonctionner comme il fonctionne sur Windows, Mac OS et Linux avec la boîte de dialogue d'impression standard.
Je suis au courant du projet Birt, mais je ne pouvais pas trouver des conseils sur la façon de le mettre en œuvre dans un programm RCP et comment appeler la boîte de dialogue d'impression standard et comment transmettre le rapport généré Birt à l'imprimante.
Happy pour tous les conseils.
La solution
Je crois que le projet Birt utilisé pour utiliser IText. (Maintenant ITextPDF )
L'autre solution est de intégrer Apache FOP dans votre RCP projet . (Voir Apache FOP ).
Pour que cela fonctionne, il est conseillé de pas mettre en œuvre un moteur de rendu
mais mettre en œuvre une paire IFDocumentHandler
/ IFPainter
, dans le cadre d'un nouveau format intermédiaire (si cela a été intégré à FOP, que je ne suis pas sûr):
- créer un nouveau projet Java, décider d'un
empaqueter nom et préparer deux classes de mise en œuvre
IFDocumentHandler
(Au niveau du document) etIFPainter
(niveau de la page).
Ces interfaces se trouvent dans le packageorg.apache.fop.render.intermediate
. - Pour enregistrer la nouvelle implémentation, vous devez définir un type MIME (voir aussi
MimeConstants.java
) et créer une classeAbstractIFDocumentHandlerMaker
extension qui sert de classe d'usine. - Ensuite, créez un fichier texte appelé
META-INF/services/org.apache.fop.render.intermediate.IFDocumentHandler
dans lequel vous écrivez le nom complet de la classe de cette classe « maker ». - Une chose que je peux avoir à ajouter (qui manque currently-) est une méthode de
setIFDocumentHandlerOverride()
dansFOUserAgent
, de sorte que vous pouvez configurer la sortie dans une fenêtreSWT
. L'API normale est optimisé pour les fichiers de production.
Le bug 23618 (fixe sept ans plus tard!) Contient un petit exemple de faire un travail d'impression et le SWT FAQ a quelques intéressantes éléments sur l'imprimante (par rapport à affichage, DPI et TRIM). Cette SWT extrait est tout à fait clair aussi.
Cependant, aucun de ces exemples sont appelés par des commandes, même si vous pouvez définir un facilement ) une fois que vous avez un gestionnaire (toute la classe que vous avez écrit, en mesure d'ouvrir la boîte de dialogue d'impression) mis en place.
Note: savoir, lorsque vous appelez la boîte de dialogue Imprimer, que seules les dernières versions d'Eclipse Helios 3.6 (à savoir le
Autres conseils
Vous pouvez envisager d'utiliser SWT Trombones. Cela a l'impression de mon application RCP beaucoup, beaucoup plus facile.