Creare file WORD con PHP e PHPWord

Mattepuffo's logo
Creare file WORD con PHP e PHPWord

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!


Condividi

Commentami!