Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    88

    Visualizzo i tag html+css correttamente nel browser, ma non nel formato Pdf

    Ho scritto tag html per generare un pdf, il problema è che nel browser visualizzo bene mentre se vado ad utilizzare la classe Tcpf mi da tutto sballato.

    ecco il codice:

    variabile che contiene tag html
    codice:
    $html = '<head>
            <title>Esempio</title>
            <meta charset="utf-8">
            <style type="text/css">
            
              #destinatario{
                min-width: 10cm;
                float: right;
                text-align: center; /* io metterei left */
                font-family: sans-serif;
                white-space: nowrap;
                /* altri fronzoli */
                padding: .4cm;
                //border: 1px solid Grey; //è il bordo
                border-radius: .4cm;
              }
              
             
            </style>
          </head>
          <body>
            <div id="destinatario">
              Spett.l
              <br>testo riga 1
              <br>testo riga2
              <br>testo riga n (non si conosce la quantità delle righe)
            </div>
           
          </body>
            ';
    istanzio l'oggetto per aggiungere pagine e stampa del pdf
    codice:
    define('EURO', chr(128));
    require_once('tcpdf_include.php');
    // crea un documento PDF
    $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
    
    $pdf->AddPage('L', 'A4');
    $pdf->writeHTML($html, true, false, false, false, '');
    $pdf->Output('prova_fattura.pdf', 'I'); // inserisce il nome del file pdf
    stampa con echo, questo è ciò che si visualizza (ed è corretto)
    spett.jpg


    codice:
    echo $html;
    1) io voglio che la stampa sia a destra (come giustamente viene stampato nel browser) ma quando vado a fare la stampa del pdf me lo stampa tutto a sinistra Perchè?

    2) Se chiamo writeHTML (metodo della classe tcpdf) e passo come parametro i tag html quasi sempre viene restituito un altro output rispetto al browser...perché?

    grazie in anticipo

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Vado ad intuito non avendo mai usato TCPDF con HTML.
    Probabilmente non vede le regole CSS scritte a parte, prova ad inserire l'attributo style="...." così
    <div id="destinatario" style="min-width: 10cm; float: right; ... ecc" > .... </div>

    e vedi se così funziona.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    88
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Vado ad intuito non avendo mai usato TCPDF con HTML.
    Probabilmente non vede le regole CSS scritte a parte, prova ad inserire l'attributo style="...." così
    <div id="destinatario" style="min-width: 10cm; float: right; ... ecc" > .... </div>

    e vedi se così funziona.
    a funzionare funziona...però per un fatto di comodità sarebbe meglio scrivere tutte le regole di CSS in un file a parte anche perché se ci sono N clienti basterebbe includere il foglio CSS, invece la versione da te suggerita dovrei andare a modificare per ogni cliente (se non ci sono altre soluzioni, dovrò arrangiarmi come mi hai suggerito), però sembra strano che non si possa includere i fogli di stile per generare i pdf.
    Ultima modifica di feys88; 01-12-2014 a 10:55

  4. #4
    Conoscendo la classe tcpdf posso dirti che non ha il pieno supporto a tutti i comandi css.
    Il supporto ai css (o agli stili in generale) è limitato ad alcuni comandi. Così come il supporto alla generazione dei pdf non comprende tutte le casistiche. Funziona bene ma è limitata. Ti devi adattare, adattando il tuo codice.
    Un esempio è dato dalle ultime versioni di phpmyadmin (4.0) che usano tcpdf come libreria per esportare in pdf una tabella o query.. se guardi il codice html prodotto per essere incluso nel pdf è abbastanza da vomito (stile inline..) cosa che non si userebbe mai per una pagina online.

    Se necessiti di un pieno supporto di rendering html/css devi rivolgerti a librerie più complete, le quali però sono a pagamento. La più famosa e più completa, se posso citarla, è pdflib. Purtroppo è molto costosa quindi conviene ben valutare se va acquistata.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    88
    Quote Originariamente inviata da W Thunderbird Visualizza il messaggio
    Conoscendo la classe tcpdf posso dirti che non ha il pieno supporto a tutti i comandi css.
    Il supporto ai css (o agli stili in generale) è limitato ad alcuni comandi. Così come il supporto alla generazione dei pdf non comprende tutte le casistiche. Funziona bene ma è limitata. Ti devi adattare, adattando il tuo codice.
    Un esempio è dato dalle ultime versioni di phpmyadmin (4.0) che usano tcpdf come libreria per esportare in pdf una tabella o query.. se guardi il codice html prodotto per essere incluso nel pdf è abbastanza da vomito (stile inline..) cosa che non si userebbe mai per una pagina online.

    Se necessiti di un pieno supporto di rendering html/css devi rivolgerti a librerie più complete, le quali però sono a pagamento. La più famosa e più completa, se posso citarla, è pdflib. Purtroppo è molto costosa quindi conviene ben valutare se va acquistata.
    ok grazie per la conferma...

    grazie anche a Alhazred (non essendoci alternative dovrò fare come mi ha suggerito).


  6. #6
    Se riesci ad adattarti è sicuramente meglio. I css non è che non li prende.. è che non riesce a fare il rendering di tutte le proprietà. Ad esempio non sopporta il float per i div.
    Le prestazioni non sono male. Per dei clienti che non volevano pagare altre licenze (o servizi esterni), ho creato script con tcpdf che riuscivano a creare anche 200 file pdf (circa 200 kb l'uno) in un minuto partendo da un template in html+css.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.