2012-06-12 27 views
7

Próbowałem zainstalować i używać czcionki w mojej aplikacji WPF, ale mogę to tak: enter image description hereDlaczego otrzymuję kwadraty zamiast tekstu?

Oto kod próbowałem użyć czcionki:

richtext1.FontFamily = "SH_Roq'a"; 

Oczekiwany wynik jest: (snap strzela z MS Word) enter image description here

gdy próbuję dodać plik czcionki do katalogu projektu i używać go jako zasób, tak:

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

Nie dostanę kwadratowych wyników, ale nie będę też oczekiwał czcionki! Co mogę to czcionka Tahoma:

enter image description here

który nie jest ukierunkowany czcionki, należy pobrać plik czcionki here kierowane do eksperymentów

Każda pomoc jest mile widziana!

EDIT

Zwykły tekst dla powyższego tekstu jest zrobione:

تفاح احمر 

Więc dla tych, którzy są ekspertami z użyciem czcionki, mogą eksperymentować.

+0

Czy pogrubiono wersję słowną? Czcionka wygląda bardzo podobnie. Jeśli wyświetlasz .ttf twojej czcionki, czy zawiera ona określone znaki? – Tejs

+0

Moje osobiste wrażenie jest takie, że wersja słowo nie może wyglądać inaczej od aktualnego wyniku WPF (miters zamiast kwadratowych capów, kaligraficzny długopis zamiast stałej szerokości skoku itp.), Ale czy OP mógłby napisać tekst w postaci zwykłego tekstu w jego pytaniu też? To dałoby tych z nas, którzy wiedzą o czcionkach, Unicode i pokrewnych zagadnieniach, ale nie wiedzą, jak napisać po arabsku szansę dokładnie odtworzyć to, co widzisz. –

+0

Domyślam się, że renderer czcionek w programie Word może śledzić wskazówki kerningu w pliku czcionek, których renderer w WPF nie może wykonać. Czy zauważyłeś, że czcionka jest poprawnie używana w przeglądarce? – antlersoft

Odpowiedz

2

Istnieje kilka problemów z czcionką:

  1. to nie jest Unicode zakodowane: używa identyfikatora platformy 3, kodowanie ID 0 CMAP subtable, znany również jako stół "symbol". Zwykle nie działają one dobrze poza starszymi aplikacjami pulpitu systemu Windows.

  2. nie ma żadnych funkcji układu OpenType (GSUB, GPOS, itp.), Które są niezbędne do prawidłowego kształtowania (początkowe, przyśrodkowe, końcowe, odizolowane formy, ligatury lam-alef, itp.) Pisarstwa arabskiego/urdu/farsi .

  3. wykorzystuje bardzo, bardzo stary, stół OS/2 (wersja 0). Niektóre technologie Microsoft wymagają co najmniej wersji 1. W polu fsSelection tej tabeli i wielu innych podejrzanych ustawieniach są również zarezerwowane bity.

Przestałem tam patrzeć. Wydaje się, że czcionka została zbudowana przy użyciu bardzo starych narzędzi, z wykorzystaniem nieaktualnej wiedzy na temat budowy czcionek. Wymaga znacznej aktualizacji, aby działać poprawnie w nowoczesnych środowiskach.

+0

Dziękuję bardzo wiele szczegółowych odpowiedzi, czy możesz nam powiedzieć, czy istnieje narzędzie, którego możemy użyć do wypolerowania tak starej czcionki? narzędzie, które przeniesie plik czcionki do pracy w nowoczesnym środowisku? – simo

+0

Istnieje kilka narzędzi do czcionek (na przykład FontForge), ale samo narzędzie prawdopodobnie nie pomoże ci zbytnio. Czcionka wymaga uwagi kogoś, kto rozumie ten system pisania, a także ma wiedzę na temat tworzenia/edycji/tworzenia nowoczesnych czcionek. – djangodude

Powiązane problemy