Corsi on-line

Da HTML a DOCX Word con VsWord

VsWord è una classe PHP che permette di eseguire due distinte operazioni: la prima prevede di effettuare il parsing del codice di una pagina HTML per la sua conversione in un documento in formato Microsoft Word XML DOCX, cioè quello comunemente impiegato per i salvataggi tramite la nota applicazione per la videoscrittura di Ms Office, la seconda consiste nella generazione diretta di DOCX tramite i metodi disponibili.

docx-files-without-office-2007Le conversioni da HTML a DOCX possono rivelarsi utili in diversi casi, si pensi per esempio all’utilizzo dei CRM, nello stesso modo poter effettuare dinamicamente tale operazione consentirà di non dover procedere manualmente, automatizzando invece i processi di salvataggio dei documenti nell’output compatibile con Ms Word e altre applicazioni simili come per esempio Writer di LibreOffice, ad oggi la più valida alternativa Open Source alla suite per la produttività di Redmond.

Utilizzare VsWord è particolarmente semplice, il codice seguente rappresenta un esempio di caricamento della classe, paragrafazione di un testo da salvare in un file in formato DOCX e relativo salvataggio di quest’ultimo con attribuzione di un nome:

// inclusione e caricamento della classe
require_once '../vsword/VsWord.php'; 
VsWord::autoLoad();
// istanza
$doc = new VsWord();
// primo paragrafo
$paragraph = new PCompositeNode(); 
$paragraph->addPNodeStyle( new AlignNode(AlignNode::TYPE_RIGHT) );
$paragraph->addText("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc quis felis dolor. Phasellus hendrerit velit vitae nisi..");
$doc->getDocument()->getBody()->addNode( $paragraph );
// secondo paragrafo
$paragraph = new PCompositeNode(); 
$paragraph->addPNodeStyle( new AlignNode(AlignNode::TYPE_LEFT) );
$paragraph->addText("Vestibulum non blandit orci. Maecenas id rutrum lacus, ut viverra nulla. Nullam egestas dapibus nisi, vel elementum..");
$doc->getDocument()->getBody()->addNode( $paragraph );
// inserimento dei dati nel corpo del documento
echo '<pre>'.($doc->getDocument()->getBody()->look()).'</pre>';
// salvataggio in formato DOCX
$doc->saveAs('paragrafi.docx');

Da notare la disponibilità di metodi di classe (AlignNode) appositamente dedicati all’allineamento del testo e di costanti concepite per il medesimo scopo (TYPE_RIGHT e TYPE_LEFT); VsWord supporta inoltre la creazione di tabelle, la definizione dei font da associare ai diversi elementi del testo con relative dimensioni, la gestione delle righe vuote e degli spazi nonché la creazione e l’ordinamento delle liste (elenchi puntati o numerati).

Chiaramente l’utilizzo della libreria apparirà ancora più pratico nel caso in cui i dati per la generazione dei testi possano essere prelevati direttamente da una database.

Via VsWord

Post correlati
I più letti del mese
Tematiche