GraphicsUnit.Point, la conversion au format PDF ne convient pas… GraphicsUnit.World l'est, mais comment puis-je le convertir en Point?

StackOverflow https://stackoverflow.com/questions/258035

  •  06-07-2019
  •  | 
  •  

Question

J'ai du code en .Net pour dessiner du contenu textuel avec GDI +. J'ai utilisé GraphicsUnit.Point pour redimensionner le texte. Cela fonctionne à merveille à l’écran, et même si vous l’imprimez.

On m'a demandé de créer un système générant un fichier PDF, et j'ai le contrôle PDF de ComponentOne. Son interface est similaire à celle de GDI +.

Le problème est le suivant: les tailles de police ne fonctionnent pas. Si j'utilise GraphicsUnit.Point, le texte est beaucoup plus petit et j'obtiens un espace vide sous le texte. Lorsque j'utilise GraphicsUnit.World, le texte est toujours petit, mais il n'y a pas d'espace vide supplémentaire sous le texte.

Je veux comprendre comment convertir GraphicsUnit.World en GraphicsUnit.Point.

Toute aide sera appréciée.

Merci

Était-ce utile?

La solution

Après un peu de googeling et d’après ce que j’ai appris de mon expérience personnelle avec GDI + et le dessin de chaîne, cela revient au DPI (points par pouce). Fondamentalement, les différents périphériques (et en ce qui concerne GDI +, le format PDF est probablement un périphérique) ont des valeurs de DPI différentes. Les écrans ont généralement quelque chose comme 70 DPI. Les imprimantes utilisent 72. Je ne sais pas ce que les fichiers PDF utilisent, mais il pourrait s'agir de 100 (il s'agit d'une valeur commune pour l'indépendance du périphérique et qui expliquerait le texte plus petit).

Maintenant, les points sont définis comme étant 72 DPI. C'est toujours vrai. Lorsque GDI + doit dessiner sur un fichier PDF avec un autre DPI, le dessin de la chaîne doit être transformé en conséquence. Mais cela ne fonctionne pas toujours, surtout avec du texte.

Selon certaines recherches, GraphicsUnit.World devrait être indépendant du périphérique et avoir le même aspect sur tous les périphériques.

Autres conseils

Vous avez raison, GraphicsUnit.World a le même aspect sur papier et sur écran. Ma dernière solution consistait à utiliser GraphicsUnit.World comme unité de mesure et à éviter les points. Je ne connais toujours pas le taux de conversion, mais j’ai estimé la valeur jusqu’à ce que l’apparence soit correcte.

Pour moi, cela suffisait.

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