Para una aplicación de libro electrónico de iPhone, necesito dividir los documentos HTML arbitrariamente largos en páginas que se ajusten exactamente a una pantalla. Si simplemente uso UIWebView para esto, las líneas inferiores tienden a mostrarse solo parcialmente: el resto desaparece del borde de la vista.¿Cómo dividir documentos HTML en páginas para libros electrónicos?
Así que supongo que necesitaría saber cuántas líneas completas (o caracteres) se mostrarían en UIWebView, dado el código fuente HTML, y luego alimentarlo con la cantidad exacta de datos. Esto probablemente implica muchos cálculos, y el usuario también debe poder cambiar las fuentes y los tamaños.
No tengo ni idea de si esto es posible, aunque aplicaciones como Stanza toman archivos HTML (epub) y los paginan muy bien. Ha pasado mucho tiempo desde que miré JavaScript, ¿sería una opción que vale la pena mirar?
¡Todas las sugerencias son muy apreciadas!
actualización
así que he dado con una posible solución, utilizando JavaScript para anotar el DOM-árbol con tamaños y posiciones de cada elemento. Entonces debería ser posible reestructurar el árbol (usando XSLT o JavaScript incorporado), dividiéndolo en páginas que se ajusten exactamente a la pantalla.
El problema restante aquí es que esto siempre rompe la página en los límites de párrafo, ya que no hay acceso al texto en un nivel inferior al elemento P. Quizás esto se puede remediar analizando el texto en palabras, encapsulando cada palabra en una etiqueta SPAN, repitiendo el procedimiento de medición anterior, y luego solo mostrando los elementos SPAN que se ajustan a la pantalla, insertando los restantes al frente de la siguiente página.
Todo esto suena bastante complicado. ¿Estoy hablando de algún sentido? ¿Hay alguna forma más simple?
Gracias, sugerencia útil! Es una lástima que WebKit no implemente ni siquiera la regla de página @ CSS2. El soporte de múltiples columnas es aparentemente experimental, pero tal vez pueda jugar un poco con eso. No sé si puedo tener un UIWebView que sea lo suficientemente amplio para la cantidad de columnas que necesito para representar (1 por página), pero vale la pena investigarlo. – radnoise
No he intentado @page en el iPhone, pero ciertamente espero que Apple lo soporte en el iPad, al menos en una próxima actualización. multicolumn funciona muy bien en las versiones recientes de webkit (no estoy seguro acerca de iphone tho). – user336639