2009-11-06 10 views
7

Ho provato a fare una funzione di ricerca in un'applicazione PDF. Ho letto la guida di Quartz 2d nella libreria di riferimento per iPhone. E così tanto è stato detto sugli "operatori pdf". È usandoli che tutto è fatto, usando call-back per loro.Quali sono gli operatori pdf necessari per eseguire una funzione di ricerca in un PDF in iphone sdk?

Per informazioni sugli operatori di pdf, dovremmo leggere il riferimento pdf di Adobe. Ma è molto vasto. Qualcuno può darmi un'idea di ciò che questi operatori sono (O come avere un'idea nel studiarli) e quale di essi richiederò per la mia "ricerca di una stringa di funzioni in pdf"?

risposta

7

Sono stato alla ricerca per la stessa cosa e oggi ho trovato questo post che ha alcuni indizi:

http://www.random-ideas.net/posts/42

Sembra che gli operatori sono "TJ" e "Tj".

+1

ok non ci sono informazioni da questo link per l'ora corrente. puoi suggerire qualcosa –

+0

@MatrosovAlexander, puoi ottenere il link post originale [qui] (http://web.archive.org/web/20131122162015/http://blog.random-ideas.net/?p=184) . – Hemang

6

Non lasciatevi spaventare dal riferimento PDF. È molto ben strutturato e basta solo leggere alcuni capitoli per capire come viene gestito il testo. È possibile scaricarlo da Adobe:

Enrique è corretto in quanto TJ e Tj sono gli operatori che mostrano il testo, ma è del tutto possibile, e anche normale, che parole e frasi siano suddivise in più operazioni. Probabilmente dovresti concentrarti sui blocchi di testo, contrassegnati da BT e ET (inizia testo/testo finale) nell'oggetto PDF Stream.

PDFBox dal progetto Apache è una libreria molto completa per lavorare con documenti PDF, dare un'occhiata lì.

+0

Ho provato ad aggiungere una richiamata per l'operatore BT, ma tutto quello che ottengo dallo streamer sono numeri reali. Non dovrei ottenere il testo attuale? – pt2ph8

+1

No - il BT è un operatore singolo che segna l'inizio di un blocco di testo. Tutti i comandi tra un BT e il successivo ET visualizzano effettivamente il testo. Dovresti semplicemente usare BT e ET come marker per farti sapere che sei in un blocco di testo. – purecharger

2

ci sono quattro operatori che mostrano il testo, vale a dire Tj, ', " e TJ. Quando si imposta la tua tavola operatore si deve sfuggire almeno il segno di virgolette doppie in questo modo.

CGPDFOperatorTableSetCallback(table, "\"", doubleQuot); 

ho fatto la stessa cosa per la virgoletta singola così, giusto per essere sicuri.

Se andate a leggere il capitolo "9.4.3 Text-Visualizzazione Operatori" dal refe Se il purificatore di un documento è collegato con attenzione, vedrai che gli operatori delle virgolette sono in realtà composti da più operatori più semplici come Tj, ma devi comunque scansionarli o potresti perdere del testo.

Tutti questi operatori sono sempre all'interno di un contesto BT. Hai già notato che l'operatore BT stesso non ha parametri, ma se si tiene traccia della matrice di testo (necessaria solo se si desidera eseguire il posizionamento), è necessario impostarlo sulla matrice identità.

Problemi correlati