Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776

    PHP orientato ad oggetti, Generare PDF con tabelle e immagini

    Ciao a tutti,

    avrei la necessit� di generare dei documenti PDF, sarebbero dei preventivi, con tabelle e immagini.
    Qualcuno di voi ha avuto esperienze di questo tipo e mi potrebbe consigliare?


    Avrei bisogno di "disegnare" all'interno del pdf delle tabelle con molte colonne e dati e mettere delle immagini.
    Posso farlo con una precisione millimetrica?
    Ovvero altezza cella , larghezza cella, ridimensionamento immagini, altezza testo, posizione testo,etc?

    Ho un po' di esperienza con la libreria GD, a video lo saprei fare, penso che sia la stessa cosa su PDF.
    Ho trovato questa libreria, orientata ad oggetti:
    http://www.fpdf.org/

    Me la consigliate o c'e' di meglio?

    Grazie,
    Roberto

  2. #2
    fpdf se non ricordo male ha le sue magagne ma di fatto è molto usata. Sul "millimetrico" non mi esprimo. Cercando con google ho trovato anche questa http://html2pdf.fr/it/default

    su packagist ci sono queste https://packagist.org/search/?q=pdf ed un interessante adapter per utilizzare https://github.com/mpdf/mpdf
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Quote Originariamente inviata da Santino83_02 Visualizza il messaggio
    fpdf se non ricordo male ha le sue magagne ma di fatto � molto usata. Sul "millimetrico" non mi esprimo. Cercando con google ho trovato anche questa http://html2pdf.fr/it/default

    su packagist ci sono queste https://packagist.org/search/?q=pdf ed un interessante adapter per utilizzare https://github.com/mpdf/mpdf


    Convertire da html a PDf sarebbe un bel casino, soprattutto per far stare tutti i dati.
    Ho la necessit� di far stare diverse tabelle all'interno del documento PDF, sarebbero dei preventivi.
    Se converto da HTML a PDF rischierei di far sballare tutto, meglio "disegnare" direttamente sul foglio A4 avendo ben presente le dimensioni 21X29.7, adattando le dimensioni al foglio direttamente, piuttosto che su un documento html e convertirlo a PDF.
    Ho visto che con la libreria che ho linkato, si possono disegnare rette, colori, tabelle, importare immagini, ridimensionare le immagini, etc.
    Il cliente avrebbe la necessit� di effettuare preventivi, sono abbastanza complessi.
    Sono "costruttori" (non so se in italiano si dica cos�, vivo all'estero e l'taliano l'ho un po' dimenticato), fanno tetti per navi industriali, pareti, pavimenti, etc; a parte la struttura fisica che non fanno loro.
    Molte volte il dettaglio dei materiali impiegati viene diviso in pi� pagine, devo poter controllare tutto quello che succede (che si disegna), sulle singole pagine, per cui convertire da html a pdf, la vedo grigia!

    Di quelle che mi hai postato, tu ne hai usata qualcuna?

    Grazie,
    Roberto

  4. #4
    Ho usato fpdf ma per cose semplici. Per il resto, in PHP non ho mai avuto necessità di generare PDF. E' anche un'attività che generalmente odio.

    io cmq una letta alla documentazione di https://mpdf.github.io/ la darei, sicuramente è più semplice disegnare una pagina html che si adatti ad un A4, piuttosto che avere a che fare con celle e righe direttamente

    Ti suggerirei di provare a farti una demo con dati demo di quello che vuoi ottenere (ad esempio: un preventivo tipo con 200 righe di materiale) e provare a generare il pdf usando fpdf e mpdf: ci metti più tempo, è vero, ma saggi meglio le librerie e ti può salvare la vita in caso le esigenze diventino più complesse in corso d'opera.
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Quote Originariamente inviata da Santino83_02 Visualizza il messaggio
    io cmq una letta alla documentazione di https://mpdf.github.io/ la darei, sicuramente è più semplice disegnare una pagina html che si adatti ad un A4, piuttosto che avere a che fare con celle e righe direttamente
    In effetti, riflettendoci, hai ragione, certo non potrò avere lo stesso controllo, ma sarà più semplice adattarlo.
    Visto che non l'ho mai fatto, per logica, devo ragionare come se il foglio fosse il mio monitor, giusto?
    Per una pagina non vedo la difficoltà, metti il caso di più pagine, dove l'header e il footer si ripetono, o una tabella non entra in un foglio solo, come faccio a passarlo a documento PDF, dividerlo in più pagine?
    ...dovrei ragionare sulle proporzioni di larghezza altezza di un foglio A4?



    Quote Originariamente inviata da Santino83_02 Visualizza il messaggio
    Ti suggerirei di provare a farti una demo con dati demo di quello che vuoi ottenere (ad esempio: un preventivo tipo con 200 righe di materiale) e provare a generare il pdf usando fpdf e mpdf: ci metti più tempo, è vero, ma saggi meglio le librerie e ti può salvare la vita in caso le esigenze diventino più complesse in corso d'opera.
    Ottimi consigli!

    Grazie!

  6. #6
    Quote Originariamente inviata da robynosse Visualizza il messaggio
    In effetti, riflettendoci, hai ragione, certo non potrò avere lo stesso controllo, ma sarà più semplice adattarlo.
    Visto che non l'ho mai fatto, per logica, devo ragionare come se il foglio fosse il mio monitor, giusto?
    Per una pagina non vedo la difficoltà, metti il caso di più pagine, dove l'header e il footer si ripetono, o una tabella non entra in un foglio solo, come faccio a passarlo a documento PDF, dividerlo in più pagine?
    ...dovrei ragionare sulle proporzioni di larghezza altezza di un foglio A4?
    ora sono un pò arrugginito con i css per la stampa, ma si hai una pagina html che è il tuo A4: ovviamente non puoi ragionare per pixel, a meno che non fai corrispondenza tra i pixel e la risoluzione in ppi con qui intendi stampare. Però dovresti avere queste certezze:

    - header (ovvero, un div html) di grandezza fissa
    - footer (ovvero , un div html ) di grandezza fissa
    - un content compreso tra header e footer di altezza variabile, però dovresti a quel punto essere in grado di capire, magari con delle prove, quante righe della fattura/preventivo possono starci. La libreria è in grado di mettere i page break in automatico pure, probabilmente ripetendo il footer. Insomma, c'è da sperimentare utilizzando un "ambiente" demo che ti aiuti a impratichirti con gli strumenti (potresti farti una libreria con i vari unit testing per gestire la creazione di pdf e poi aggiungerla al progetto )

    Cmq, c'è tanto lavoro da fare sicuramente. Normalmente, a prescindere dal linguaggio utilizzare, si creano dei template che poi si vanno a riempire con i dati presi dall'applicativo: l'uso del template aiuta a sapere, ad esempio, quante righe possono entrare in un foglio (visto che sono preimpostate in altezza).

    La rottura di scatole tipica di queste cose, ad esempio, è la presenza di un testo troppo lungo dentro una cella: il testo o viene troncato per rispettare with/height della cella, oppure va a capo, ma allora l'altezza della cella va ricalcolata. Questo è un fattore che devi prevedere sia se utilizzi html che se utilizzi direttamente il disegno da codice
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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 © 2025 vBulletin Solutions, Inc. All rights reserved.