Este es un problema mucho más difícil de lo que la mayoría de la gente cree, porque el PDF es poco más que un flujo de comandos de dibujo (básicamente un archivo .ps) junto con cualquier fuente, imagen u otros recursos necesarios. El PDF está pensado para las impresoras, no para los humanos, así que, aunque reproduce fielmente los contenidos en varios dispositivos, el formato no tiene una comprensión profunda de cuáles son esos contenidos. No es como el HTML, donde los contenidos son simplemente estilizados por las etiquetas – en PDF, el dibujo de cada carácter es un comando separado, y potencialmente podrían venir en cualquier orden y seguir siendo válidos.
Cuando escribí el soporte de PDF para una aplicación de iPad, básicamente tuve que diseñar cada página en la memoria y observar qué caracteres estaban cerca unos de otros y más o menos en la misma «línea» con el fin de apoyar la búsqueda y el resaltado. Profundizar en el PDF es una pesadilla absoluta, y debe evitarse si es posible.
Si sólo necesita soportar iOS, PDPDFKit (http://pspdfkit.com) es el camino a seguir. Es ampliamente utilizado y se ha desarrollado durante mucho tiempo, por lo que está probado.