IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

Interrogations sur l'impression


Sujet :

API standards et tierces Java

  1. #1
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Par défaut Interrogations sur l'impression
    Bonjour,

    Je travaille actuellement sur l'impression d'un document de type rapport d'importation présentant sous la forme d'une liste de plusieurs niveaux les détails des objets importés.
    Dans mon cas, il s'agit d'importations d'oeuvres audio et littéraire dans la base de données d'une médiathèque.
    Lors de l'importation, les objets sont dotés d'une référence interne, et d'un code barre imprimé sur une étiquette qui ne présente que la référence littérale, et son code barre. Ma liste a pour but de rappeler sous forme de tableau quels ont été les références alouées à chaque nouvelle oeuvre afin qu'ils puissent plus facilement apposer les étiquettes sur les oeuvres.
    Voilà, le scénario est posé.
    Pour réaliser cette impression, n'étant pas spécialiste de ce type de traitement, j'y suis allez au feeling. Bref, comme on peut imprimer un composant swing, genre une JFrame contenant divers chose de sorte qu'elle sorte sur l'imprimante comme à lécran, et dans le but de proposer un apperçu avant impression, j'ai jugé pertinent de créer un JPanel en tant que page, et de dimensionner ce dernier en pixels, de sorte qu'il correspondent à des dimensions en millimètres histoire de travailler avec les formats standard A4 et autre. Puis, la composition de chaque page de mon impression se résume donc à créer un JPanel et à habité ce dernier de JLabel et JTable pour représenter la page. Une fois fait, le JPanel en question est renvoyé en tant qu'objet implémentant Printable et le tour est joué.
    Tout fonctionne à merveille, à un détail prèt.
    Lorsque je réalise une 'véritable' impression, sur mon imprimante laser via son pilote PCL, le job pèse 4,5Mo pour un document de 5 pages par exemple. Mais lorsque j'utilise PDF Creator (pour ne pas décimer la planette) comme imprimante, le job fait 350Mo !?????

    Quelqu'un aurait-il une idée ....
    Moi, je ne comprends pas. Je comprends seulement que ma méthode engendre une impression graphique et non texte, ce qui ne me gène pas quand on voit le poids de ce dernier lors d'une impression réèle, mais via PDF Creator, je ne comprends pas cette envolée qui du coup me ralenti énormément dans mes tests.

    Merci d'avance à ceux qui m'auront lu jusqu'au bout.
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  2. #2
    Membre Expert

    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2009
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2009
    Messages : 553
    Par défaut
    Hello!
    Je suis confronté au même problème, si bien que j'ai laissé tomber les fonctions d'impression de mon appli pour le moment. D'après ce que j'ai pu comprendre en fouillant sur le net, Java génère une image au dimension de la résolution max de l'imprimante destinatrice et en utilisant la palette de couleur la plus grande possible. Et ce, même si cela conduit ensuite le driver à faire une réduction de l'image ! . Je n'ai pas réussi à gagner quoi que ce soit sur le point du job d'impression en diminuant la résolution demandée au Printer. Peut-être qu'en utilisant une librairie Java qui génère directement un PDF dans passer par Printer?

  3. #3
    Membre émérite Avatar de Lorantus
    Homme Profil pro
    Consultant développeur indépendant / Java/VB/C(++)/ObjectPal
    Inscrit en
    Août 2007
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant développeur indépendant / Java/VB/C(++)/ObjectPal

    Informations forums :
    Inscription : Août 2007
    Messages : 599
    Par défaut
    L'impression sous Java gére une image par page. Et PDFCreator utilise un .pdf qui engloble l'image résultante. Pour peu que ta résolution soit haute, tu obtiens très vite des fichiers .pdf énormes (et que le PCL génére un Bitmap, là, c'est la catastrophe).

    J'utilise les bibliothéque iText pour générer de tels documents. Cette API posséde toutes les fonctions que tu utilises. Les images sont des images, les textes sont des textes, large gamme de codes barres. Le poids du fichier est donc bien allégé.

    Généralement, pour de beau rapport, tu peux utiliser Jasper ou iReport. Le PDF est facile à créer (pour ma part, j'utilise une API perso. que j'ai développé il y a quelques années, au début de iReport).

  4. #4
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Par défaut J'ai trouvé une solution
    Merci à vous deux pour vos réponses.
    En attendant de trouver une explication à tout cela, j'ai poursuivi mon developement. Ce dernier m'a conduit à réaliser un aperçu avant impression. Comme mon container principal est un JPanel, l'apperçu a été très simple a réaliser, je me suis contenté d'instancer une sous-classe de JDialog qui intègre un JScrollPane vide avec une petite barre de navigation représentée par une série de bouton situés juste en dessous. Et la, nouveau mystère...
    Bref, lorsque je place le JPanel principale dans le JScrollPane, se dernier se réalise à la perfection, le JScrollPane s'adapte parfaitement et affiche les sliders horizontal et vertical. Mais lorsque je survolle les entetes des JTable, une multitude d'erreur se révèlent en rapport avec le dispatching d'évennement. En effet, par défaut, un JTableHeader intègre deux ecoutes d'évennement MouseMotionListener pour gérer le redimenssionnement et/ou la réorganisation des colonnes. Bref, ne trouvant pas le moyen d'éviter ces erreurs (qui ne sont sans conséquence sur le fonctionnement), j'ai fini par changer de composant et remplacé les JTableHeader par une série de JLabel. Depuis, l'impression vers PDF Creator ne fait plus qu'1,74 Mo ?!!!
    J'en conclus que ce qui déclenche cette ascenssion surprenante du poids de l'impression est lié à la présence de JTableHeader.
    Donc, le problème est réglé, mais cela ne m'explique pas ce qui se passe avec ce JTableHeader. Quand j'aurai le temps, je regarderait de près tout ce qui est en rapport avec l'impression d'un composant JTableHeader. En effet, l'habillage de ce dernier est du plus bel effet à l'impression, un effet que je ne saurais reproduire avec des JLabel.
    Si vous avez essayer de remplacer vos JTableHeader dans votre programme nnovic, j'aimerai savoir si cela vous a aussi permis d'allèger le travail d'impression résultant. Je préciserai une dernière chose, dans mon cas, mon JPanel 'imprimé' ne contient que des JLabel ou des JTable, pas d'autres types de composant, je ne sais pas ce qu'il en est pour vous.
    Je tenais aussi à vous remercier Lorantus, vos suggestions sont interressantes. Cependant, je suis purement auto-didacte, l'informatique n'est de loin pas ma profession (je suis ouvrier du livre), aussi, c'est au fure et à mesure de mes developement que je découvre et apprend telle ou telle technologie. Mon projet, une gestion de bibliothèque-médiathèque est deja en 'exploitation' et je ne peux pas me permettre de passer du temps à étudier correctement des API complètes, je n'ai pas le regard d'un informaticien ce qui m'oblige a tout lire pour tout comprendre. Mais j'ai évidement pris note de vos indications et ne manquerai pas à l'occasion d'y jetter un oeil.
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Interrogation sur le but de ce forum?
    Par Extra-Nitro dans le forum Contribuez
    Réponses: 3
    Dernier message: 03/09/2006, 22h21
  2. [CKEditor] Interrogations sur la sécurité de cet éditeur
    Par hisy dans le forum Bibliothèques & Frameworks
    Réponses: 8
    Dernier message: 12/05/2006, 14h56
  3. [STAGE] avis sur entretien/impression
    Par pelo68 dans le forum Stages
    Réponses: 24
    Dernier message: 10/04/2006, 13h14
  4. [MFC] [Visual.NET] Question sur l'impression
    Par LapinGarou dans le forum MFC
    Réponses: 8
    Dernier message: 31/03/2006, 08h51
  5. Petite interrogation sur les z-index et div
    Par Delphy113 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 13/02/2006, 21h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo