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.

Était-ce utile?

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) et IFPainter (niveau de la page).
    Ces interfaces se trouvent dans le package org.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 classe AbstractIFDocumentHandlerMaker 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() dans FOUserAgent, de sorte que vous pouvez configurer la sortie dans une fenêtre SWT. 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

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