2012-04-16 13 views
5

Non sono sicuro di come superare questo problema anche se ho impostato la dimensione della pagina in A4, presumo che le dimensioni della pagina rimarrebbero intatte e il mio contenuto sarebbe stato avvolto correttamente?WkHtmlToPDF visualizza un pdf piccolo se il testo è troppo lungo

nota Sto usando l'involucro WkHtmlToXSharp per creare il mio pdf

enter image description here

Problema: se si immettono le stringhe che non sono frazionate, per esempio una lunga stringa - quello che ho mostrato nel l'immagine sopra si verificherà. Come posso risolvere questo? Esistono alcune opzioni per WkhtmlToPDF per avvolgere il testo?

+0

Ho appena aggiunto una domanda molto relative a questo, ma si tratta di immagini al posto delle stringhe lunghe "unbreakable". Credo che la ragione di fondo sia la stessa, ma la soluzione sia diversa. http://stackoverflow.com/q/12456736/694325 – Nenotlep

+0

Hai appena esaminato la tua domanda, non so quanti soluzioni alternative sono disponibili per questo strumento. Le persone hanno suggerito una correzione javascript, ad esempio contare i caratteri e suddividere ogni riga, ma non posso onestamente dire quale sia la soluzione migliore. Guardando google docs sembra che suddividano ogni riga, ma guardano la larghezza della pagina e la larghezza dei caratteri, quindi fanno un po 'di divisione - ma non posso dire per certo. Fammi sapere se trovi qualcosa. – Haroon

+0

ciao, sei riuscito a farlo? Sto affrontando lo stesso problema. Grazie. –

risposta

0

È necessario rompere le pagine. E 'facile come l'aggiunta di questo:

<div style='page-break-after:always'></div> 

Ad esempio, se si dispone di un lungo tavolo, si può fare in questo modo pseudo-codice:

if ($row > 100) { 
    echo "</table>"; 
    echo "<div style='page-break-after:always'></div>"; 
    echo "<table>"; } 
+0

Il mio problema è più relativo al text wrapping, non alle interruzioni di pagina – Haroon

+0

Ah, ora ho capito - beh, è ​​un problema difficile - il mio pensiero è leggere le stringhe e se è troppo lungo, spezzarlo con i trattini usando una delle funzioni di stringa. PHP ha la funzione "wordwrap()". Non so di C# tho. – netrox

1

Se si desidera una soluzione CSS, si potrebbe provare a impostare una larghezza per l'elemento che trabocca e quindi prova con word-wrap: break-word;, overflow:hidden; e white-space: nowrap per controllare il problema, alcuni di questi o una combinazione potrebbe funzionare per te. Per quanto riguarda una soluzione wkhtmltopdf che sarebbe universale ... Se ne trovi, ne voglio uno anche io!

+0

Per quanto riguarda l'hacking manuale dell'HTML sorgente, è possibile caricarlo su una stringa e quindi controllare se ci sono parole più lunghe di 9000 caratteri e quindi eseguire lo sporco hacker responsabile - ma quel metodo mi sembra icky. Anche una soluzione JS potrebbe effettivamente funzionare per quella rotta se non vuoi farlo in C# – Nenotlep

Problemi correlati