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

Documents Java Discussion :

IText : Arial différent entre l'écran et le PDF


Sujet :

Documents Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de bpy1401
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 511
    Par défaut IText : Arial différent entre l'écran et le PDF
    Bonjour à tous

    J'ai une application qui visualise du texte et des images sur une page. Ce texte est en caractère ARIAL. Quand je sauvegarde cette page dans un PDF avec IText, le rendu du texte est différent. La police semble être la même, mais le texte s'étend plus en longueur.

    Mon code est basé sur du dessin comme ceci

    Pour le dessin vers le PDF
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    g2 = cb.createGraphics g2.setFont(createFont(field.getValueForKey(FieldDescriptor.VALEUR_COULEUR)));
    String textToDisplay = field.getValueForKey(FieldDescriptor.OBSERVATION);
    FontMetrics metrics = g2.getFontMetrics(createFont(field.getValueForKey(FieldDescriptor.VALEUR_COULEUR)));
    g2.drawString(textToDisplay, (int)((double)x), y+metrics.getHeight());
    et le dessin de la chaine vers l'écran
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       public void paint(Graphics g) {
          Graphics2D g2 = (Graphics2D) g;
          g2.drawString(cell.getStringValue(),
    Est du à un problème de lien vers la police tout en sachant que je suis toujours sur le même ordinateur pour ces deux opérations

    Cordialement.
    Page sur Developpez : http://pbriand.developpez.com

  2. #2
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 097
    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 097
    Par défaut
    Bonsoir,

    Je ne suis pas un spécialiste, mais j'ai le sentiment qu'il s'agit d'un problème de résolution. Lorsque vous êtes dans le contexte graphique écran, la résolution est définie par la résolution de votre écran, soit généralement 72 ou 96 DPI, voir plus pour des écrans de haut de gammes. Par contre, un PDF est par nature un document destiné à l'impression, qui lui raisonne dans un contexte graphique papier, avec une résolution d'impression, généralement de 300 dpi. Donc, il me semble normal que pour une même taille, votre texte prenne plus de place à l'écran que sur le 'papier', ou plus précisément, sur le PDF ?!...
    Mais je ne voudrais pas vous induire en erreur. Pour le vérifier, il pourrait être intéressant, dans la mesure du possible, de préciser à IText de générer le PDF dans la même résolution que celle de votre écran. Dans ce cas, si mon hypothèse est juste, le texte devrait présenter le même encombrement...
    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/

  3. #3
    Membre émérite
    Avatar de bpy1401
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 511
    Par défaut
    Merci pursang

    Je vais tenter ce test pour voir

    Cordialement
    Page sur Developpez : http://pbriand.developpez.com

  4. #4
    Membre émérite
    Avatar de bpy1401
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 511
    Par défaut
    Bonjour

    Grace à ton aide, j'ai pu identifier le problème, mais je ne l'ai pas encore résolu.
    Mon écran est en 96 dpi, tandis que le document PDF en 72 dpi.

    Sur mon écran, j'utilise une Font ARIAL qui est elle aussi en 96 dpi, donc à l'écran tout se passe bien. Par contre , dans le document PDF, ma font est aussi en 96 dpi, ce qui explique la différence.

    je dois maintenant trouver un moyen pour que ma font soit en 72 dpi.
    merci
    Page sur Developpez : http://pbriand.developpez.com

  5. #5
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 097
    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 097
    Par défaut
    En fait, si je ne me trompes pas, en terme typographique la "résolution" est toujours de 72dpi. En fait, un point de corp représente 1/72ème de pouce, soit 2,54/72 = 0,0353 cm.
    Je vais regarder de mon côté s'il existe un "transformateur' applicable à l'objet Graphics2D qui permet d'appliquer une nouvelle résolution pour une Font...
    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/

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/11/2011, 12h13
  2. Réponses: 2
    Dernier message: 28/07/2011, 15h35
  3. Réponses: 3
    Dernier message: 08/11/2010, 20h28
  4. [ASCII] Codes différents entre 2 logiciels
    Par MinsK dans le forum Assembleur
    Réponses: 3
    Dernier message: 20/04/2004, 09h34
  5. Réponses: 2
    Dernier message: 17/05/2002, 20h37

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