2009-05-01 13 views
7

La specifica PDF definisce un operatore di testo chiamato '(apostrofo). La definizione è che scrive del testo e passa alla riga successiva in base allo stato iniziale corrente. Lo stato iniziale attuale può essere impostato utilizzando l'operatore TL. Questo rende molto facile da scrivere righe di testo se si sa quanto dovrebbero essere distanziate verticalmente:Come si calcola il PDF derivante da TTF?

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

non sto usando le librerie per questo, in quanto è un esercizio di apprendimento. Ho scritto del codice per analizzare direttamente i file TTF ed estrarre le larghezze dei caratteri e altri elementi richiesti per i dizionari FontDescriptor PDF.

Ho letto le specifiche del formato di file TTF per cercare di capire dove si trova l'altezza della linea o come può essere calcolato, ma non ho avuto fortuna.

Supponendo che ho i seguenti dati di fatto:

  • La dimensione del carattere.
  • Tutti i valori rilevanti dal file TTF (Ascender, Descender, Linea Gap, ecc)

Come faccio a calcolare PDF che conduce dalla TTF?

modificare

Sembra che il valore Linea Gap dal file TTF è strumentale ai fini del calcolo PDF leader, ma alcuni caratteri non forniscono un valore ragionevole per esso (Courier New su Windows, per esempio).

+0

+1 Non ho idea di quale sia la risposta, ma mi piacerebbe anche saperlo, dato che ho fatto la mia parte di output PDF manuale. – JasonSmith

risposta

3

In nessun modo sono io minimamente informato circa i caratteri, o di avere una risposta definitiva, ma ho pensato che avrei posto alcuni link riguardanti alcune informazioni che ho trovato per quanto riguarda l'argomento.

Il Microsoft OpenType Specification (vedere la sezione Baseline alle distanze della linea di base, verso il basso) definisce il vantaggio uguale al LineGap.

L'Apple Text System Overview afferma che:

spazio aggiunto durante la composizione tra le righe di tipo è chiamato leader, dopo le lumache di piombo utilizzati a tal fine nel tradizionale layout di pagina di tipo metallico. (A volte il lead viene anche chiamato linegap.)

Quindi, in base a questi collegamenti, LineGap non viene solo utilizzato per calcolare l'interlinea, ma in realtà è il principale.

+0

Font come Courier New su Windows hanno uno 0 in Line Gap, ti sei occupato di quelli? – Martin

+0

Una bella ricerca, ma da quello che ho capito, in gergo in inglese, la guida è in realtà definita come la distanza dalla linea di base precedente alla linea di base attuale. In altre parole, è possibile utilizzare direttamente il calcolo della distanza da baseline a baseline nella specifica OpenType. – WCWedin

0

Non sono completamente sicuro di cosa si stia tentando di fare, ma sembra che si vogliano incorporare caratteri di tipo true in un documento PDF. Se è così, perché non usi il lattice?

http://www.radamir.com/tex/ttf-tex.htm

Problemi correlati