2009-05-01 13 views
7

Specyfikacja pliku PDF definiuje operatora tekstowego o nazwie "(apostrof). Definicja jest taka, że ​​wypisuje jakiś tekst i przechodzi do następnej linii na podstawie bieżącego stanu wiodącego. Bieżący stan wiodący można ustawić za pomocą operatora TL. To sprawia, że ​​bardzo łatwo jest pisać wiersze tekstu, jeśli wiesz, ile powinny one być rozstawione w pionie:Jak obliczyć PDF prowadzący z TTF?

 
16 TL 
/F1 12 Tf 
(Line 1) ' 
(Line 2) ' 
(Line 3) ' 
(Line 4) ' 

Nie używam żadnych bibliotek do tego, jak to jest ćwiczenie uczenia się. Napisałem trochę kodu do bezpośredniego analizowania plików TTF i wyodrębniania szerokości znaków oraz innych elementów, które są wymagane dla słowników PDF FontDescriptor.

Czytałem specyfikację formatu pliku TTF, aby dowiedzieć się, gdzie znajduje się wysokość linii lub jak można ją obliczyć, ale nie miałem szczęścia.

Zakładając Mam następujące plansze:

  • rozmiar czcionki.
  • Wszystkie odpowiednie wartości z pliku TTF (Ascender, descender, Linia Gap, etc.)

W jaki sposób obliczyć PDF prowadzące z TTF?

edit

Wydaje się, że wartość Linia Gap z pliku TTF jest instrumentalny w obliczaniu PDF wiodącą, ale niektóre czcionki nie stanowią sensowną wartość dla niego (Courier New na Windows, na przykład).

+0

+1 Nie mam pojęcia, jaka jest odpowiedź, ale bardzo chciałbym wiedzieć, ponieważ wykonałem swój udział w ręcznym generowaniu plików PDF. – JasonSmith

Odpowiedz

3

W żadnym wypadku nie jestem w najmniejszym stopniu wiedzę o czcionek, lub mają jednoznacznej odpowiedzi, ale pomyślałem, że po kilka linków dotyczących niektórych informacji znalazłem dotyczących tematu.

Parametr Microsoft OpenType Specification (patrz sekcja Odległość od linii bazowej do linii bazowej, w kierunku do dołu) określa prowadzenie jako równe odległości między liniami.

Apple Text System Overview stwierdza:

Przestrzeń dodawane podczas nabieranie między wierszami tekstu nazywany jest wiodącym, po ślimaki ołowiu używanych w tym celu w tradycyjny metalowy typu układ strony. (Wiodący jest czasem nazywany także linkiem).

Tak więc, zgodnie z tymi linkami, LineGap nie służy tylko do obliczenia prowadzącego, ale w rzeczywistości jest wiodącym.

+0

Czcionki takie jak Courier New na Windows mają 0 w Line Gap, czy w ogóle sobie z nimi poradziłeś? – Martin

+0

Niezłe badania, ale z tego, co rozumiem, w żargonie PDF, prowadzenie jest faktycznie zdefiniowane jako odległość od poprzedniej linii podstawowej do obecnej linii podstawowej. Innymi słowy, możesz użyć obliczenia odległości od linii bazowej do linii bazowej bezpośrednio w specyfikacji OpenType. – WCWedin