Creare file WORD con PHP e PHPWord
PHPWord fa parte della libreria PHPOffice (abbiamo già visto varie volte come usare PHPExcel), utile per creare file office usando PHP.
Prima di tutto, installiamo la libreria; io ho usato Composer:
$ cd tua/directory/installazione
$ composer require phpoffice/phpword
Verrà creata una cartella vendor, con dentro tutto il necessario.
Questo file di esempio:
require_once './vendor/autoload.php';
$phpWord = new PhpOfficePhpWordPhpWord();
$section = $phpWord->addSection();
$section->addText('Questo è il primo paragrafo!');
$section->addText('Questo è il secondo paragrafo!');
$fontStyleName = 'ilmiostile';
$phpWord->addFontStyle(
$fontStyleName, array(
'name' => 'Tahoma',
'size' => 12,
'color' => '1B2232',
'bold' => true
));
$section->addText('Paragrafo con stile diverso', $fontStyleName);
$fontStyle = new PhpOfficePhpWordStyleFont();
$fontStyle->setBold(true);
$fontStyle->setName('Tahoma');
$fontStyle->setSize(13);
$myTextElement = $section->addText('Aggiungiamone un altro!');
$myTextElement->setFontStyle($fontStyle);
$file = 'file.docx';
//$file = 'file.odt';
//$file = 'file.html';
header("Content-Description: File Transfer");
header('Content-Disposition: attachment; filename="' . $file . '"');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');
$objWriter = PhpOfficePhpWordIOFactory::createWriter($phpWord, 'Word2007');
//$objWriter = PhpOfficePhpWordIOFactory::createWriter($phpWord, 'ODText');
//$objWriter = PhpOfficePhpWordIOFactory::createWriter($phpWord, 'HTML');
$objWriter->save('php://output');
Come vedete, vi ho messo tre possibili formati di output:
- file per MS WORD 2007
- file ODT per LibreOffice
- file HTML
In tutti e tre i casi, il file verrà mandato in output nel browser.
Nella documentazione ho visto che è possibile anche creare PDF, ma non ho testato.
Enjoy!
php phpoffice phpword composer office
Commentami!