Per un'applicazione ebook per iPhone ho bisogno di rompere documenti HTML arbitrariamente lunghi in pagine che si adattano esattamente su uno schermo. Se uso semplicemente UIWebView per questo, le righe più profonde tendono a essere visualizzate solo parzialmente: il resto scompare dal bordo della vista.Come suddividere i documenti HTML in pagine per ebook?
Quindi presumo che avrei bisogno di sapere quante linee complete (o caratteri) verrebbero visualizzate da UIWebView, dato l'HTML sorgente, e quindi fornirle esattamente la giusta quantità di dati. Questo probabilmente richiede molti calcoli e l'utente deve anche essere in grado di cambiare tipi di carattere e dimensioni.
Non ho idea se questo sia possibile, anche se app come Stanza accettano file HTML (epub) e li impaginano piacevolmente. È passato molto tempo da quando ho guardato JavaScript, sarebbe un'opzione che vale la pena guardare?
Qualsiasi suggerimento molto apprezzato!
aggiornamento
Così ho colpito su una possibile soluzione, utilizzando JavaScript per annotare il DOM-albero con dimensioni e posizioni di ogni elemento. Dovrebbe quindi essere possibile ristrutturare l'albero (usando XSLT o JavaScript incorporato), tagliandolo in pagine che si adattano esattamente allo schermo.
Il problema rimanente qui è che questo interrompe sempre la pagina sui limiti del paragrafo, poiché non vi è accesso al testo ad un livello inferiore rispetto all'elemento P. Forse questo può essere risolto analizzando il testo in parole, incapsulando ogni parola in un tag SPAN, ripetendo la procedura di misurazione sopra, e quindi visualizzando solo gli elementi SPAN che si adattano allo schermo, inserendo i rimanenti nella parte anteriore del successivo pagina.
Tutto ciò suona piuttosto complicato. Sto parlando di senso? c'è un modo più facile?
Grazie, suggerimento utile! Peccato che WebKit non implementi nemmeno la regola @page CSS2. Il supporto a più colonne è apparentemente ancora sperimentale, ma forse potrei giocherellare un po 'con quello. Non so se posso avere un UIWebView che è abbastanza largo per il numero di colonne che devo renderizzare (1 per pagina), ma vale la pena indagare. – radnoise
Non ho provato @page su iPhone, ma sicuramente mi aspetto che Apple lo supporti su iPad, almeno in un prossimo aggiornamento. multicolumn funziona alla grande nelle versioni recenti del webkit (non sono sicuro di iphone tho). – user336639