2012-06-12 18 views
7

J'ai essayé d'installer et d'utiliser une police dans mon application WPF, mais tout ce que je reçois est comme ceci: enter image description herePourquoi j'ai des carrés au lieu de texte?

Voici le code que j'ai essayé d'utiliser la police:

richtext1.FontFamily = "SH_Roq'a"; 

Le résultat attendu est la suivante: (SnapShot de MS Word) enter image description here

Si je tente d'ajouter le fichier de police dans le dossier du projet, et l'utiliser comme une ressource, comme ceci:

richtext1.FontFamily = "./#SH_Roq'a"; 

Je ne vais pas obtenir les résultats carrés, mais, je n'aurai pas la police attendue non plus! Ce que je reçois est la police Tahoma:

enter image description here

qui n'est pas la police ciblée, s'il vous plaît télécharger le fichier de police ciblé here pour des expériences

Toute aide est appréciée!

EDIT

Le texte brut pour le texte ci-dessus est capturé:

تفاح احمر 

Donc, pour ceux qui sont des experts en utilisant les polices, ils peuvent expérimenter.

+0

Le mot version est-il en gras? La police est très similaire. Si vous affichez le fichier .ttf de votre police, contient-il les caractères spécifiés? – Tejs

+0

Mon impression personnelle est que la version de mot pourrait difficilement être plus différente du résultat WPF actuel (mitres au lieu de majuscules, un stylo calligraphique plutôt qu'une largeur de trait fixe etc.), mais l'OP pourrait écrire le texte en texte clair dans sa question, aussi? Cela donnerait à ceux d'entre nous qui connaissent les polices, Unicode et les questions connexes, mais ne savent pas comment écrire l'arabe une chance de reproduire exactement ce que vous voyez. –

+0

Je suppose que le moteur de rendu des polices dans Word est capable de suivre les indications de crénage dans le fichier de police que le moteur de rendu de WPF ne peut pas faire. Avez-vous vu la police utilisée correctement dans le navigateur? – antlersoft

Répondre

2

Il y a plusieurs problèmes avec la police:

  1. il est non Unicode: il utilise un ID de plate-forme 3, l'encodage ID 0 CMAP sous-table, également connu sous le nom d'une table "Symbole". Ceux-ci ne fonctionnent généralement pas bien en dehors des anciennes applications de bureau Windows.

  2. il n'y a pas de fonctionnalités OpenType Layout (GSUB, GPOS, etc.) qui sont essentielles pour la mise en forme (initiale, médiale, finale, formes isolées, ligatures lam-alef, etc.) d'écriture arabe/ourdou/farsi .

  3. il utilise une très, très ancienne table OS/2 (version 0). Certaines technologies Microsoft requièrent la version 1 au minimum. Il y a aussi des bits réservés dans le champ fsSelection de cette table et un certain nombre d'autres paramètres suspects.

J'ai arrêté de regarder là-bas. Cette police semble avoir été construite avec de très vieux outils, en utilisant des connaissances désuètes sur la construction de polices. Il a besoin d'une mise à jour importante pour fonctionner correctement dans les environnements modernes.

+0

Merci beaucoup beaucoup pour une réponse détaillée, pouvez-vous s'il vous plaît nous dire s'il existe un outil que nous pouvons utiliser pour polir une telle vieille police? un outil qui va migrer le fichier de police pour travailler dans des environnements modernes? – simo

+0

Il y a des outils de polices autour (par exemple FontForge), mais un seul outil ne va probablement pas vous aider beaucoup. La police a besoin de l'attention de quelqu'un qui comprend ce système d'écriture ainsi que la connaissance de la création de polices modernes/édition/développement. – djangodude

Questions connexes