Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

LiveDocx: template based document generation

Link copiato negli appunti

Mi capita spesso di dover generare dinamicamente dei file PDF o DOC.

Alla ricerca di una soluzione che mi facilitasse il lavoro mi sono imbattuto in LiveDocx, un servizio basato su SOAP che permette di generare dei documenti partendo da dei template creati con un word processor.

Solitamente quando devo generare dei PDF utilizzo 2 approcci: o l'"HTML-to-PDF Approach" oppure il "Programmatic Approach".

Nel primo caso si genera dinamicamente un HTML e lo si da in pasto ad una libreria che creerà  il file PDF. àˆ un approccio facile da implementare ma che va bene per layout semplici, poiché la maggior parte delle librerie ha dei limiti sulla struttura dell'HTML di partenza.

Il secondo approccio invece offre un controllo totale sul file generato, ma richiede un lungo lavoro per definire le coordinate di ogni singolo elemento; oltretutto, qualora il designer modificasse il layout del PDF, il programmatore dovrebbe rimettere mano al codice.

LiveDocx propone un approccio alternativo: partendo da un file di template generato da un word processor permette di generare non solo un file PDF, ma anche file in altri formati come DOCX, DOC e RTF.

LiveDocx si può usare direttamente utilizzando il SoapClient di PHP 5 e la libreria NuSOAP oppure il componente all'interno dello Zend Framework.

Bastano 3 semplici passi:

  1. creare il nostro template attraverso un programma di word processor definendo dei merge fields
  2. si popola dinamicamente il template con i nostri dati
  3. si crea il file nel formato a noi più comodo, PDF, DOCX, DOC, HTML, RTF, TXT, BMP, GIF, JPG, PNG, TIFF o WMF

Ecco le poche righe per generare il file con lo Zend Framework:

$phpLiveDocx = new Zend_Service_LiveDocx_MailMerge();
$phpLiveDocx->setUsername('username')
            ->setPassword('password');
$phpLiveDocx->setLocalTemplate('template.docx');
$phpLiveDocx->assign('software', 'Magic Graphical Compression Suite v1.9')
            ->assign('licensee', 'Henry Dà¶ner-Meyer')
            ->assign('company',  'Co-Operation')
            ->assign('date',     'January 11, 2010')
            ->assign('time',     'January 11, 2010')
            ->assign('city',     'Berlin')
            ->assign('country',  'Germany');
$phpLiveDocx->createDocument();
$document = $phpLiveDocx->retrieveDocument('pdf');
file_put_contents('document.pdf', $document);

Oltre a delle semplici variabili, nel template possiamo utilizzare anche array associativi, in modo che il sistema iteri su più elementi, grazie ai merge block.

Il componente di LiveDocx nello Zend Framework è distribuito tramite Free BSD License, ma il LiveDocx SOAP server è proprietario. Se si decide di utilizzare questa libreria in produzione si può scegliere tra 3 soluzioni:

  • free public server: è sicuramente l'approccio più utilizzato. àˆ completamente gratuito ed offre tutte le funzionalità ; è il server di default nel componente nello Zend Framework
  • hosted solution: se è necessario creare centinaia di documenti al giorno, si può pensare di pagare una piccola fee per avere accesso ad un LiveDocx server personale
  • fully-licensed: come ultima opzione è possibile avere uno o più LiveDocx server direttamente nella propria rete. E' una soluzione adatta per gestire l'acquisto dei biglietti di una compagnia aerea, la generazione di fatture di una compagnia telefonica oppure per gestire applicazioni che hanno un alto traffico di dati sensibili, come informazioni finanziare o mediche

E voi che libreria utilizzate per generare PDF?

Ti consigliamo anche