Dopo due giorni cercando di leggere le annotazioni da un PDF utilizzando Quartz, sono riuscito a farlo e posted my code.Ricerca PDF su iPhone
Ora mi piacerebbe fare lo stesso per un'altra domanda frequente: cercare documenti PDF con Quartz. La stessa situazione di prima, questa domanda è stata posta molte volte senza quasi nessuna risposta pratica. Quindi ho bisogno di alcuni suggerimenti prima, perché non l'ho ancora implementato io stesso.
Quello che ho cercato:
Ho provato ad utilizzare CGPDFScannerScan
gestire gli operatori TJ
e Tj
- restituisce il testo a destra su alcuni PDF, mentre su altri documenti restituisce le lettere per lo più casuali. Forse è correlato alla codifica del testo? Qualcuno pointed out che i blocchi di testo (contrassegnati dagli operatori BT/ET) devono essere gestiti, ma non sono ancora riuscito a farlo. Qualcuno è riuscito a estrarre il testo da qualsiasi PDF?
Dopodiché, la ricerca dovrebbe essere facile memorizzando tutto il testo in un NSMutableString
e utilizzando rangeOfString
(se c'è un modo migliore per favore fatemelo sapere).
Ma allora come evidenziare il risultato? So che ci sono alcuni operatori per trovare le dimensioni dei glifi, quindi ho potuto calcolare il rect risultante basato su quei valori, ma ho letto le specifiche per ore ... è un casino gonfio e sto diventando pazzo. Chiunque abbia una spiegazione pratica?
Aggiornamento
utente Naveen Thunga trovato PDFKitten "un quadro di riferimento per l'estrazione di dati da file PDF in iOS". Ho appena provato la demo e sembra funzionare come pubblicizzato. Lo testerò con altri PDF e posterò presto i risultati. Come nota a margine, il codice mi sembra molto buono - se sei interessato a come funziona questa roba è davvero fantastico.
Trovato questa raccolta di operatori potrebbe essere utile: http://efreedom.com/Question/1-3627745/Getting-Text-Position-Parsing-Pdf-Quartz -2D –
Ehi Brainfeeder, hai trovato qualche soluzione riguardante l'evidenziazione dei risultati della ricerca? – Sarah
@Sarah: No, ancora niente, ho iniziato a concentrarmi su altre cose dopo qualche giorno ... – pt2ph8