2012-09-10 20 views
5

Podemos quedar seleccionado de texto desde un punto de vista web mediante el usoser elegida texto del archivo PDF cargado en UIWebView

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

Pero esto no va a funcionar si estoy cargando un archivo PDF. Entonces, lo que pensé es que para copiar el texto seleccionado y pegarlo desde el UIPasteboard programáticamente. Funciona bien cuando hago clic en el botón Copiar manualmente, pero no quiero que sea así. Quiero que la copia de la cade se ejecute programáticamente. ¿Cómo puedo hacer una llamada? O simplemente, ¿cómo puedo obtener la referencia del texto seleccionado de un archivo PDF cargado en una vista web?

Respuesta

0

No hay una respuesta simple a esto, corríjame si me equivoco pero creo que para optimizar la huella de memoria UIWebView dibuja las páginas de PDF como imágenes para que no tenga acceso a elementos individuales (campos de texto, imágenes, etc.). Puede hacer esto:

Los PDF son diccionarios anidados compuestos por más diccionarios & matrices. Vas a tener que excavar en CGPDFDocument

Desde UIWebView no expone mucho en términos de personalización, Reader es un buen punto de partida & alternativa sugerida para la prestación de PDF. Dado que es de código abierto, puede cambiar la lógica de representación para seleccionar texto.

Otra alternativa es PSPDFKit. Lo he usado en uno de mis proyectos & es bastante increíble. Incluye búsqueda de texto completo, creación automática de miniaturas, modo de página única o doble, vista de esquema, enlaces de página y más

Estoy pensando que una o una combinación de los enfoques anteriores deberían ayudarle a obtener lo que desea & y luego libérelo como fuente abierta para que otros se beneficien;)

+0

Pero entonces, ¿cómo obtengo el texto cuando copio el seleccionado manualmente y uso UIPasteboard para mostrarlo? – bijesh

+0

¿Puedes poner un código para mostrar? –

+1

NSString * myString = [UIPasteboard generalPasteboard] .string; NSLog (@ "Cadena copiada:% @", myString); Usando esto obtengo la cadena copiada del archivo PDF – bijesh

Cuestiones relacionadas