2012-09-10 4 views
5

Possiamo ottenere il testo selezionato da una visualizzazione Web utilizzandoottenere selezionati testo del file PDF caricato in UIWebView

- (NSString *)selectedText { 
    return [self stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"]; 
} 

Ma questo non funzionerà se sto caricando un file PDF. Quindi quello che ho pensato è quello di copiare il testo selezionato e incollarlo da UIPasteboard a livello di programmazione. Funziona bene quando faccio clic sul pulsante Copia manualmente, ma non voglio che sia così. Voglio che la copia cade venga eseguita in modo programmatico. Come posso effettuare una chiamata? O semplicemente, come posso ottenere il riferimento del testo selezionato da un file PDF caricato in una visualizzazione web.

risposta

0

Non c'è una risposta semplice a questo, correggimi se sbaglio ma penso di ottimizzare l'impronta di memoria UIWebView effettivamente disegna le pagine PDF come immagini in modo da non avere accesso a singoli elementi (campi di testo, immagini ecc.). Si può fare questo -

I PDF sono dizionari annidati composti da più dizionari & array. Dovrete scavare CGPDFDocument

Dal UIWebView non espone molto in termini di personalizzazione, Reader è una buona alternativa punto di partenza & suggerito per il rendering PDF. Dal suo open-source è possibile modificare la logica di rendering per selezionare il testo.

Un'altra alternativa è PSPDFKit. L'ho usato in uno dei miei progetti & è davvero fantastico. Comprende la ricerca full-text, la creazione automatica di miniature, la modalità singola o doppia, il profilo della vista, i collegamenti delle pagine e altro

Sto pensando che uno o un mix degli approcci di cui sopra dovrebbe aiutarti a ottenere ciò che desideri & quindi rilasciarlo come open-source per gli altri a beneficiarne;)

+0

Ma allora come faccio a ottenere il testo quando copio manualmente quello selezionato e utilizzo l'UIPasteboard per visualizzarlo? – bijesh

+0

puoi inserire del codice da visualizzare? –

+1

NSString * myString = [UIPasteboard generalPasteboard] .string; NSLog (@ "Stringa copiata:% @", myString); Usando questo ottengo la stringa copiata dal file PDF – bijesh