2009-12-23 5 views
3

Je rencontre un problème avec le rendu d'une police TrueType dans un svg rendu à un pdf via fop.Problème de rendu de la police TrueType en SVG

Dans le pdf final, la police sort avec Times New Roman au lieu de la police TrueType que j'avais attendue.

La famille de polices principale du document utilise des polices de type 1 et utilise également des métriques de polices que j'ai générées et qui s'affichent correctement. Je pense que la version TrueType de la police a été ajoutée simplement pour le graphique dans le passé. La chose étrange est que cela fonctionnait à un moment et semble avoir cessé de fonctionner et je ne peux pas le remettre en marche car je ne comprends pas comment cela aurait fonctionné en premier lieu. Pour essayer de le faire fonctionner, j'ai traversé différentes combinaisons de Java 6, Java 5 et FOP 0.95 et 0.93 et ​​le tout dernier tronc FOP sans succès. Même avec la trace complète activée dans la génération fop, je ne vois aucune mention de la police qui est substituée avec Times New Roman mais je suppose que c'est parce que Batik prend la responsabilité de ce rendu.

J'ai exécuté un exemple de code Java et la police TrueType semble être correctement vue par AWT, ce que je crois être ce que Batik utilise.

J'ai également essayé d'utiliser des substitutions de polices dans le fichier fop.xconf mais cela ne semble pas avoir d'effet. Dans le fichier fop.xconf, je n'ai défini que les polices Type 1 et une autre True Type Font Zapfdingbats qui sont traitées correctement dans le fichier pdf. Dois-je également ajouter l'autre police TrueType ici, mais en vérifiant notre historique des versions, il ne semble pas avoir été là dans le passé.

Y at-il quelque chose que je manque ici car je pensais que le batik prendrait la police de Windows ttf et le rendrait mais cela ne semble pas fonctionner. Toute aide serait grandement appréciée. Merci, crocked

Répondre

5

Jetez un oeil aux réponses suivantes faites sur les utilisateurs de FOP Liste de diffusion:

Donc, pour faire ce travail, vous devriez procédez comme suit:

  • Utiliser FOP 0.95
  • Ne pas utiliser les fichiers de métriques de polices XML générés via TTFReader. Ce ne sont plus nécessaires.
  • Assurez-vous que les polices que vous souhaitez utiliser sont installés dans votre système d'exploitation (si Batik leur a accès à via AWT/Java2D) et configuré pour FOP (moyen le plus simple:, http://xmlgraphics.apache.org/fop/0.95/fonts.html#basics)
  • Utilisez le nom de famille de polices droit de la police en SVG. Le nom PostScript de la police ne fonctionnera pas.
+0

Merci. J'avais déjà lu les deux publications et utilisais le nom de la police Windows et j'avais déjà vérifié si la police avait été trouvée par java via cet extrait de code. Ce qui me manquait était la balise dans mon xconf. A-t-il été ajouté en premier dans 0.95? Maintenant, ça marche à nouveau. Merci pour votre aide et bonnes vacances de Noël – Crocked

+0

+1 Je l'aurais trouvé quand je devais configurer le rendu SVG en FOP. Bon résumé! –

Questions connexes