2012-06-12 16 views
7

Ho provato ad installare ed utilizzare un tipo di carattere nella mia applicazione WPF, ma tutto quello che ottiene è come questo: enter image description herePerché ottengo i quadrati invece del testo?

Ecco il codice ho provato ad usare il font:

richtext1.FontFamily = "SH_Roq'a"; 

Il risultato atteso è: (Snap Shot da MS Word) enter image description here

Se provo ad aggiungere il file di font nella cartella di progetto, e usarlo come una risorsa, come questo:

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

Non otterrò i risultati quadrati, ma, non avrò nemmeno il carattere atteso! Quello che ottengo è Tahoma font:

enter image description here

che non è il tipo di carattere mirato, si prega di scaricare il file del carattere mirato here per esperimenti

ogni aiuto è apprezzato!

EDIT

Il testo normale per il testo sopra catturato è:

تفاح احمر 

Così, per coloro che sono esperti con l'utilizzo di tipi di carattere, si può sperimentare.

+0

Il termine versione è in grassetto? Il carattere sembra molto simile. Se visualizzi il .ttf del tuo font, contiene i caratteri specificati? – Tejs

+0

La mia impressione personale è che la versione della parola potrebbe difficilmente apparire più diversa dal risultato corrente di WPF (mitra invece di maiuscole quadrate, una penna calligrafica piuttosto che una larghezza di tratto fissa, ecc.), Ma l'OP potrebbe scrivere il testo in testo normale anche nella sua domanda? Ciò darebbe a quelli di noi che conoscono i caratteri, Unicode e problemi correlati, ma non sanno come scrivere in arabo la possibilità di riprodurre esattamente ciò che stai vedendo. –

+0

La mia ipotesi è che il renderizzatore di caratteri in Word sia in grado di seguire i suggerimenti di crenatura nel file di font che il renderizzatore in WPF non può fare. Hai visto il font utilizzato correttamente nel browser? – antlersoft

risposta

2

Ci sono diversi problemi con il font:

  1. non è Unicode-codificati: utilizza un ID della piattaforma 3, Codifica ID 0 cmap sottotabella, noto anche come un tavolo "Symbol". Questi generalmente non funzionano bene al di fuori delle vecchie applicazioni desktop di Windows.

  2. non ci sono caratteristiche OpenType Layout (GSUB, GPOS, ecc.) Che sono essenziali per la corretta sagomatura (iniziale, mediale, finale, forme isolate, legature lam-alef, ecc.) Di scrittura arabo/urdu/farsi .

  3. utilizza una tabella OS/2 molto vecchia (versione 0). Alcune tecnologie Microsoft richiedono almeno la versione 1. Ci sono anche dei bit riservati impostati nel campo fsSelection di questa tabella e una serie di altre impostazioni sospette.

Ho smesso di guardare lì. Questo carattere sembra essere stato costruito con strumenti molto vecchi, utilizzando conoscenze obsolete sulla costruzione dei font. Ha bisogno di un aggiornamento significativo per funzionare correttamente negli ambienti moderni.

+0

Grazie molto per una risposta dettagliata, puoi dirci se esiste uno strumento che possiamo usare per lucidare un font così vecchio? uno strumento che migra il file dei caratteri per funzionare in ambienti moderni? – simo

+0

Ci sono alcuni strumenti per i font (ad esempio FontForge), ma probabilmente uno strumento da solo non ti aiuterà molto. Il font ha bisogno dell'attenzione di qualcuno che comprende questo sistema di scrittura e ha conoscenza della creazione/modifica/sviluppo di font moderni. – djangodude