PHPWord
Bibliothèque PHP Open Source pour documents Microsoft® Word
Lisez, écrivez, traitez et convertissez des fichiers MS Word DOC, DOCX, ODT, RTF et HTML au format PDF via l'API PHP.
Qu'est-ce que PHPWord ?
PHPWord est une bibliothèque open-source qui se compose de classes pour vous aider à développer des applications PHP qui peuvent interagir avec divers formats de fichiers de documents. PHPWord est sous licence LGPL Version 3 et vous permet de travailler avec les paramètres de document, les styles, les modèles et divers autres éléments.
Premiers pas avec PHPWord
Pour créer un document Word à l'aide de PHPWord, vous avez besoin des ressources suivantes installées dans votre système d'exploitation :
- Version PHP 5.3.3+
- Compositeur
- XML Parser Extension (Cette extension est activée par défaut)
- Zend Escaper Component Install it using le compositeur nécessite zendframework/zend-escaper
- Composant Zend Escaper Installez-le en utilisant composer require zendframework/zend-escaper
Créer un document Word avec PHPWord
PHPWord permet aux développeurs de créer un nouveau document Word (DOCX) à partir de zéro. Il vous permet d'ajouter de nouveaux paragraphes, titres, textes, images, hyperliens, graphiques et plus encore. La création d'un document Word est simple, vous devez créer un nouveau document en utilisant la méthode PhpWord().
Créer Word en PHP
- Créer un document word avec PhpWord
- Ajouter une section dans le document
- Ajouter du texte dans la section
- Enregistrer le document
Créer un document Word - PHP
<?php
require_once 'vendor\phpoffice\phpword\bootstrap.php';
// Create the new document..
$phpWord = new \PhpOffice\PhpWord\PhpWord();
// Add an empty Section to the document
$section = $phpWord->addSection();
// Add Text element to the Section
$section->addText(
'File Format Developer Guide - '
. 'Learn about computer files that you come across in '
. 'your daily work at: www.fileformat.com'
);
// Save document
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save('HelloWorld.docx');
Configurez facilement les paramètres de document
Vous pouvez effectuer divers réglages de documents. Le grossissement par défaut du document est de 100 %, mais vous pouvez le remplacer par une autre valeur. Pour les documents recto-verso, par ex. magazines, vous pouvez configurer des pages en vis-à-vis en inversant les marges des pages. Vous pouvez modifier le statut de l'option de vérification automatique des fautes de grammaire ou d'orthographe.
La fonctionnalité de suivi des révisions de documents est également disponible. PHPWord peut être configuré pour fonctionner avec les langues latines, les langues d'Asie de l'Est ainsi que les langues complexes (bidirectionnelles). Vous pouvez protéger un document ou une partie de celui-ci avec un mot de passe.
Il existe de nombreuses autres fonctionnalités que PHPWord vous permet de configurer pour les documents, dont certaines incluent les informations sur le document, les unités de mesure, la césure et le recalcul automatique des champs du document chaque fois que le document est ouvert.
Définir les propriétés DOCX - PHP
<?php
require_once 'vendor\phpoffice\phpword\bootstrap.php';
// Create the new document..
$phpWord = new \PhpOffice\PhpWord\PhpWord();
// Set document properties
$properties = $phpWord->getDocInfo();
$properties->setCreator('Ali Ahmed');
$properties->setCompany('File Format');
$properties->setTitle('PHPWord');
$properties->setDescription('File Format Developer Guide');
$properties->setCategory('My category');
$properties->setLastModifiedBy('My name');
$properties->setCreated(mktime(0, 0, 0, 3, 12, 2019));
$properties->setModified(mktime(0, 0, 0, 3, 14, 2019));
$properties->setSubject('PHPWord');
// Save document
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save('DocumentProperties.docx');
Conteneurs pour organiser les éléments de document
PHPWord a des objets appelés conteneurs, qui contiennent divers éléments (tableaux, texte, etc.) d'un document. Il y a 3 conteneurs principaux ; sections, en-têtes et pieds de page. De plus, il y a 3 éléments qui peuvent servir de conteneurs ; textures, cellules de tableau et notes de bas de page.
Tous les éléments visibles d'un document doivent être placés dans une section. Vous pouvez attribuer des numéros de page, des numéros de ligne, modifier la disposition en plusieurs colonnes et créer des en-têtes/pieds de page.
Ajouter un conteneur d'en-tête
<?php
require_once 'vendor\phpoffice\phpword\bootstrap.php';
// Create the new document..
$phpWord = new \PhpOffice\PhpWord\PhpWord();
// Add an empty Section to the document
$section = $phpWord->addSection();
// Add Header
$header = $section->addHeader();
$header->addImage('word-processing-image.png');
// Save document
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save('Container.docx');
Protéger le document Word via l'API PHPWord
Il est toujours sage de protéger ou de sécuriser vos documents importants qui contiennent des informations sensibles. La bibliothèque open-source PHPWord permet aux développeurs de logiciels de protéger leurs documents Word en fournissant un mot de passe unique dans leurs applications PHP. La protection fonctionnera comme une sauvegarde, empêchant l'accès non autorisé ou les modifications apportées au document Word.