recherche
Maisondéveloppement back-endtutoriel phpComment faire des documents Word Microsoft avec PHP

Comment faire des documents Word Microsoft avec PHP

Comme je l'avais souligné dans mon article précédent, PHP et WMI - creusez profondément dans Windows avec PHP, nous vivons dans un monde où les développeurs PHP devons faire face au système d'exploitation Windows de temps en temps. WMI (Windows Management Interface) est une de ces occasions et Microsoft Office Interop en est une autre - une plus importante et plus fréquemment utilisée.

Dans cet article, nous verrons une intégration simple entre Word et PHP: pour générer un document Microsoft Word basé sur les entrées dans une forme HTML en utilisant PHP (et son extension Interop).

Les plats clés

  • Les développeurs PHP peuvent générer des documents Microsoft Word basés sur les entrées dans une forme HTML en utilisant PHP et son extension d'interopr
  • Pour une intégration réussie, un environnement WAMP typique est nécessaire, ainsi que Microsoft Office et les bibliothèques pour développer une application Interop (PIA, Assemblages d'interopérations primaires).
  • L'extension PHP PHP_com_dotnet.dll doit être activée dans le fichier php.ini et le serveur redémarré avant de procéder à la programmation.
  • Le fichier PHP à l'arrière est au centre du processus de codage, avec une manipulation com en PHP nécessitant une instanciation d'une «classe» dans un «assemblage».
  • Pour améliorer la vitesse de codage et la compréhension de la PIA, les développeurs peuvent d'abord développer des fonctions en C #, puis migrer le code vers PHP. La documentation officielle de Microsoft sur Office Pia est un matériel de référence précieux.
préparations

Tout d'abord, veuillez vous assurer qu'un environnement WAMP typique a été configuré dans votre machine de développement Windows. Comme Interop est purement une fonctionnalité Windows, nous devrons héberger Apache et PHP sous Windows. Dans ce cas, j'utilise EasyPHP 14.1, qui est assez facile à installer et à configurer.

Ensuite, nous devrons installer Microsoft Office. Sa version n'est pas si critique. J'utilise Office 2013 Pro mais toute version Office plus tard que 2007 devrait fonctionner.

Nous devons ensuite nous assurer que les bibliothèques pour développer une application Interop (appelée PIA, assemblages d'interopt primaire) sont installés. Pour vérifier cela, nous pouvons ouvrir l'explorateur Windows et accéder à: et nous verrons un tas de pias installés:

Comment faire des documents Word Microsoft avec PHP

Nous voyons un Microsoft.office.interop.Word Entrée (souligné dans l'instantané). Ce sera le PIA que nous utilisons dans cette démo. Veuillez prêter une attention particulière à son «nom d'assemblage», «version» et «token de clé publique». Ceux-ci doivent être utilisés très bientôt dans nos scripts PHP.

Dans ce répertoire, nous pouvons également voir d'autres PIAS (y compris toute la famille Office) disponibles pour la programmation (non seulement pour PHP, mais aussi pour VB.NET, C #, etc.)

Si la liste PIAS n'inclut pas l'ensemble du package de Microsoft.office.interop, nous allons soit réinstaller notre bureau et inclure les fonctionnalités PIA; Ou nous devons télécharger manuellement le package à partir de Microsoft et l'installer. Veuillez consulter cette page MSDN pour des instructions détaillées.

Remarque: Seul Microsoft Office 2010 PIA Redistribuable est disponible pour télécharger et installer. La version PIA dans ce package est de 14.0.0. La version 15 n'est livrée qu'avec l'installation de l'Office 2013.

Enfin, nous devons activer l'extension PHP PHP_com_dotnet.dll dans le fichier php.ini et redémarrer le serveur.

Maintenant, nous pouvons passer à la programmation.

la forme html

Étant donné que cette démo se concentre sur le traitement de l'extrémité arrière, nous créerons un simple frontal avec une forme HTML simple, qui ressemble à la figure ci-dessous:

Comment faire des documents Word Microsoft avec PHP

Nous avons un champ de texte pour «Nom», un groupe de boutons radio pour «Gender», un contrôle de la gamme pour «l'âge» et une zone de texte pour «message»; Et enfin, bien sûr, un bouton «soumettre».

Enregistrez ce fichier en tant que «index.html» dans un répertoire sous le répertoire racine de l'hôte virtuel afin que nous puissions y accéder avec un URI comme http: // test / test / interop.

le back-end

Le fichier PHP à l'arrière est au centre de notre discussion. Je vais d'abord énumérer le code de ce fichier, puis l'expliquerai pas à pas.

<span><span><?php </span></span><span>
</span><span><span>$inputs = $_POST;
</span></span><span><span>$inputs['printdate']=''; 
</span></span><span><span>// A dummy value to avoid a PHP notice as we don't have "printdate" in the POST variables. 
</span></span><span>
</span><span><span>$assembly = 'Microsoft.Office.Interop.Word, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c';
</span></span><span><span>$class = 'Microsoft.Office.Interop.Word.ApplicationClass';
</span></span><span>
</span><span><span>$w = new DOTNET($assembly, $class);
</span></span><span><span>$w->visible = true;
</span></span><span>
</span><span><span>$fn = __DIR__ . '\template.docx';
</span></span><span>
</span><span><span>$d = $w->Documents->Open($fn);
</span></span><span>
</span><span><span>echo "Document opened.<br><hr>";
</span></span><span>
</span><span><span>$flds = $d->Fields;
</span></span><span><span>$count = $flds->Count;
</span></span><span><span>echo "There are <span><span>$count</span> fields in this document.<br>"</span>;
</span></span><span><span>echo "<ul>";
</ul></span></span><span><span>$mapping = setupfields();
</span></span><span>
</span><span><span>foreach ($flds as $index => $f)
</span></span><span><span>{
</span></span><span>    <span>$f->Select();
</span></span><span>    <span>$key = $mapping[$index];
</span></span><span>    <span>$value = $inputs[$key];
</span></span><span>    <span>if ($key == 'gender')
</span></span><span>    <span>{
</span></span><span>        <span>if ($value == 'm')
</span></span><span>            <span>$value = 'Mr.';
</span></span><span>        <span>else
</span></span><span>            <span>$value = 'Ms.';
</span></span><span>    <span>}
</span></span><span>    
</span><span>    <span>if($key=='printdate')
</span></span><span>        <span>$value=  date ('Y-m-d H:i:s');
</span></span><span>
</span><span>    <span>$w->Selection->TypeText($value);
</span></span><span>    <span>echo "<li>Mappig field <span><span>$index</span>: <span>$key</span> with value <span>$value</span></span>
</li>"</span>;
</span></span><span><span>}
</span></span><span><span>echo "";
</span></span><span>
</span><span><span>echo "Mapping done!<br><hr>";
</span></span><span><span>echo "Printing. Please wait...<br>";
</span></span><span>
</span><span><span>$d->PrintOut();
</span></span><span><span>sleep(3);
</span></span><span><span>echo "Done!";
</span></span><span>
</span><span><span>$w->Quit(false);
</span></span><span><span>$w=null;
</span></span><span>
</span><span>
</span><span>
</span><span><span>function setupfields()
</span></span><span><span>{
</span></span><span>    <span>$mapping = array();
</span></span><span>    <span>$mapping[0] = 'gender';
</span></span><span>    <span>$mapping[1] = 'name';
</span></span><span>    <span>$mapping[2] = 'age';
</span></span><span>    <span>$mapping[3] = 'msg';
</span></span><span>    <span>$mapping[4] = 'printdate';
</span></span><span>    
</span><span>
</span><span>    <span>return $mapping;
</span></span><span><span>}</span></span>

Après avoir configuré la variable de $ Entrées pour maintenir les valeurs publiées à partir de notre formulaire et créé une valeur factice pour Printdate - nous discuterons de la raison pour laquelle nous en avons besoin plus tard - nous rencontrons ces quatre lignes critiques:

<span>$assembly = 'Microsoft.Office.Interop.Word, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c';
</span><span>$class = 'Microsoft.Office.Interop.Word.ApplicationClass';
</span>
<span>$w = new DOTNET($assembly, $class);
</span><span>$w->visible = true;</span>

Une manipulation com en PHP nécessite une instanciation d'une «classe» dans un «assemblée». Dans notre cas, nous devons opérer avec Word. Si nous réfléchissons à la première capture d'écran que nous avons montrée, nous pourrons construire la signature complète du mot pia:

  • «Nom», «Version», «Public Key Token» sont tous tirés des informations affichées lorsque nous accélérons «C: WindowsAssembly».
  • «culture» est toujours neutral.

La classe que nous devons invoquer est toujours le nom de l'assembly plus «.ApplicationClass».

Avec ces deux paramètres définis, nous pourrons instancier un objet Word.

Cet objet peut rester en arrière-plan ou nous pouvons l'apporter au premier plan en définissant son attribut visible à true.

Ensuite, nous ouvrons le document à traiter et attribuons l'instance «Document» à une variable $ D.

Dans ce document, pour créer du contenu en fonction des entrées du formulaire HTML, nous avons quelques options.

Le moyen le plus défavorable est de coder dur tous les contenus en PHP, puis de sortir dans le document Word. Je décourage fortement cela pour les raisons suivantes:

  1. Il n'y aura pas de flexibilité. Tout changement dans la sortie nécessitera une modification du script PHP.
  2. Il viole la séparation entre le contrôle et la présentation.
  3. Il augmentera considérablement les lignes de code si nous voulons appliquer des styles au contenu du document (alignement, police, style, etc.). Les styles de changement programmatiques sont trop encombrants.

Une autre façon consiste à faire un «Recherche-Replace». PHP a de fortes capacités intégrées pour ce faire. Nous pouvons créer un document Word mettant des délimiteurs spéciaux autour du contenu de l'espace réservé qui doivent être remplacés. Par exemple, nous pouvons créer un document contenant quelque chose comme ceci:

{{nom}}

et en php, nous pouvons simplement remplacer cela par la valeur «nom» que nous avons récupérée de la soumission de formulaire.

Ceci est simple et évite tous les inconvénients de la première option. Nous avons juste besoin de trouver le bon délimiteur, et dans ce cas, nous sommes plus comme faire un rendu de modèle, sauf que le modèle utilisé est maintenant un document Word.

La troisième option est ma recommandation et est un sujet avancé dans Word. Nous utiliserons des champs pour représenter les espaces réservés, et dans notre code PHP, nous mettrons directement à jour les champs avec les valeurs de formulaire respectives.

Cette approche est flexible, rapide et est conforme aux meilleures pratiques de Word. Il évite également la recherche de texte intégral dans les documents, ce qui aide les performances. Notez que cette option a aussi ses inconvénients.

Word, depuis ses débuts, n'a jamais pris en charge les index nommés pour les champs. Même si nous avons fourni un nom pour les champs que nous avons créés dans le document Word, nous devons toujours utiliser les indices de numéro pour accéder à chaque champ. Cela explique également pourquoi nous devons utiliser une fonction dédiée (setupfields) pour effectuer le mappage manuel entre l'index de champ et le nom des champs de forme.

Pour apprendre à insérer des champs dans un document Word (cliquez ici pour une version prêt à l'emploi), veuillez consulter les sujets et manuels d'aide Word pertinents. Pour cette démo, nous avons un document avec 5 champs Mergefield. De plus, nous avons placé le document dans le même répertoire que le script PHP pour un accès facile.

Veuillez noter que le champ Printdate n'a pas de champ de formulaire correspondant. C'est pourquoi nous avons ajouté une touche privée factice au tableau des entrées $. Sans cela, le script peut toujours s'exécuter, mais il y aura un préavis disant que l'index PRINTDATE n'est pas présenté dans le tableau des entrées $.

Après la mise à jour des champs avec des valeurs de formulaire, nous imprimerons le document en utilisant:

<span><span><?php </span></span><span>
</span><span><span>$inputs = $_POST;
</span></span><span><span>$inputs['printdate']=''; 
</span></span><span><span>// A dummy value to avoid a PHP notice as we don't have "printdate" in the POST variables. 
</span></span><span>
</span><span><span>$assembly = 'Microsoft.Office.Interop.Word, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c';
</span></span><span><span>$class = 'Microsoft.Office.Interop.Word.ApplicationClass';
</span></span><span>
</span><span><span>$w = new DOTNET($assembly, $class);
</span></span><span><span>$w->visible = true;
</span></span><span>
</span><span><span>$fn = __DIR__ . '\template.docx';
</span></span><span>
</span><span><span>$d = $w->Documents->Open($fn);
</span></span><span>
</span><span><span>echo "Document opened.<br><hr>";
</span></span><span>
</span><span><span>$flds = $d->Fields;
</span></span><span><span>$count = $flds->Count;
</span></span><span><span>echo "There are <span><span>$count</span> fields in this document.<br>"</span>;
</span></span><span><span>echo "<ul>";
</ul></span></span><span><span>$mapping = setupfields();
</span></span><span>
</span><span><span>foreach ($flds as $index => $f)
</span></span><span><span>{
</span></span><span>    <span>$f->Select();
</span></span><span>    <span>$key = $mapping[$index];
</span></span><span>    <span>$value = $inputs[$key];
</span></span><span>    <span>if ($key == 'gender')
</span></span><span>    <span>{
</span></span><span>        <span>if ($value == 'm')
</span></span><span>            <span>$value = 'Mr.';
</span></span><span>        <span>else
</span></span><span>            <span>$value = 'Ms.';
</span></span><span>    <span>}
</span></span><span>    
</span><span>    <span>if($key=='printdate')
</span></span><span>        <span>$value=  date ('Y-m-d H:i:s');
</span></span><span>
</span><span>    <span>$w->Selection->TypeText($value);
</span></span><span>    <span>echo "<li>Mappig field <span><span>$index</span>: <span>$key</span> with value <span>$value</span></span>
</li>"</span>;
</span></span><span><span>}
</span></span><span><span>echo "";
</span></span><span>
</span><span><span>echo "Mapping done!<br><hr>";
</span></span><span><span>echo "Printing. Please wait...<br>";
</span></span><span>
</span><span><span>$d->PrintOut();
</span></span><span><span>sleep(3);
</span></span><span><span>echo "Done!";
</span></span><span>
</span><span><span>$w->Quit(false);
</span></span><span><span>$w=null;
</span></span><span>
</span><span>
</span><span>
</span><span><span>function setupfields()
</span></span><span><span>{
</span></span><span>    <span>$mapping = array();
</span></span><span>    <span>$mapping[0] = 'gender';
</span></span><span>    <span>$mapping[1] = 'name';
</span></span><span>    <span>$mapping[2] = 'age';
</span></span><span>    <span>$mapping[3] = 'msg';
</span></span><span>    <span>$mapping[4] = 'printdate';
</span></span><span>    
</span><span>
</span><span>    <span>return $mapping;
</span></span><span><span>}</span></span>

La méthode d'impression a quelques paramètres facultatifs et nous utilisons sa forme la plus simple. Cela imprimera une copie sur l'imprimante par défaut connectée à notre machine Windows.

Nous pouvons également choisir d'utiliser PrintPreview pour jeter un œil à la sortie avant de décider d'imprimer le document. Dans un environnement purement automatisé, nous utiliserons bien sûr l'impression à la place.

Nous devons attendre quelques secondes avant de quitter l'application Word car le travail d'impression a besoin d'un certain temps pour être entièrement en train de se débrouiller. Sans délai (3), $ w-> quit est exécuté immédiatement et le travail d'impression est également tué.

Enfin, nous appelons $ w-> quit (false) pour fermer l'application Word invoquée par notre script PHP. Le seul paramètre fourni ici est de spécifier si nous voulons enregistrer les modifications avant de quitter. Nous avons apporté des modifications au document, mais nous ne voulons vraiment pas les enregistrer parce que nous voulons garder un modèle propre pour la contribution des autres utilisateurs.

Après avoir terminé le code, nous pouvons charger la page de formulaire, saisir certaines valeurs et soumettre le formulaire. Les images ci-dessous montrent la sortie du script PHP et également le document Word mis à jour:

Comment faire des documents Word Microsoft avec PHP
Comment faire des documents Word Microsoft avec PHP

Améliorer la vitesse de codage et mieux comprendre Pia

PHP est une langue faiblement typée. Un objet com a un objet de type. Pendant notre codage PHP, il n'y a aucun moyen d'obtenir un aperçu du code significatif d'un objet, que ce soit une application Word, un document ou un champ. Nous ne savons pas quelles propriétés il dispose, ni quelles méthodes il prend en charge.

Cela ralentira considérablement notre vitesse de développement. Pour le rendre plus rapide, je recommande de développer les fonctions en C # d'abord, puis de migrer le code vers PHP. Un C # ide gratuit que je recommanderais s'appelle «#develop» et peut être téléchargé ici. Je préfère celui-ci à la série VS car #Develop est plus petit, plus propre et plus rapide.

La migration du code C # vers PHP n'est pas du tout effrayante. Permettez-moi de vous montrer quelques lignes de code C #:

<span><span><?php </span></span><span>
</span><span><span>$inputs = $_POST;
</span></span><span><span>$inputs['printdate']=''; 
</span></span><span><span>// A dummy value to avoid a PHP notice as we don't have "printdate" in the POST variables. 
</span></span><span>
</span><span><span>$assembly = 'Microsoft.Office.Interop.Word, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c';
</span></span><span><span>$class = 'Microsoft.Office.Interop.Word.ApplicationClass';
</span></span><span>
</span><span><span>$w = new DOTNET($assembly, $class);
</span></span><span><span>$w->visible = true;
</span></span><span>
</span><span><span>$fn = __DIR__ . '\template.docx';
</span></span><span>
</span><span><span>$d = $w->Documents->Open($fn);
</span></span><span>
</span><span><span>echo "Document opened.<br><hr>";
</span></span><span>
</span><span><span>$flds = $d->Fields;
</span></span><span><span>$count = $flds->Count;
</span></span><span><span>echo "There are <span><span>$count</span> fields in this document.<br>"</span>;
</span></span><span><span>echo "<ul>";
</ul></span></span><span><span>$mapping = setupfields();
</span></span><span>
</span><span><span>foreach ($flds as $index => $f)
</span></span><span><span>{
</span></span><span>    <span>$f->Select();
</span></span><span>    <span>$key = $mapping[$index];
</span></span><span>    <span>$value = $inputs[$key];
</span></span><span>    <span>if ($key == 'gender')
</span></span><span>    <span>{
</span></span><span>        <span>if ($value == 'm')
</span></span><span>            <span>$value = 'Mr.';
</span></span><span>        <span>else
</span></span><span>            <span>$value = 'Ms.';
</span></span><span>    <span>}
</span></span><span>    
</span><span>    <span>if($key=='printdate')
</span></span><span>        <span>$value=  date ('Y-m-d H:i:s');
</span></span><span>
</span><span>    <span>$w->Selection->TypeText($value);
</span></span><span>    <span>echo "<li>Mappig field <span><span>$index</span>: <span>$key</span> with value <span>$value</span></span>
</li>"</span>;
</span></span><span><span>}
</span></span><span><span>echo "";
</span></span><span>
</span><span><span>echo "Mapping done!<br><hr>";
</span></span><span><span>echo "Printing. Please wait...<br>";
</span></span><span>
</span><span><span>$d->PrintOut();
</span></span><span><span>sleep(3);
</span></span><span><span>echo "Done!";
</span></span><span>
</span><span><span>$w->Quit(false);
</span></span><span><span>$w=null;
</span></span><span>
</span><span>
</span><span>
</span><span><span>function setupfields()
</span></span><span><span>{
</span></span><span>    <span>$mapping = array();
</span></span><span>    <span>$mapping[0] = 'gender';
</span></span><span>    <span>$mapping[1] = 'name';
</span></span><span>    <span>$mapping[2] = 'age';
</span></span><span>    <span>$mapping[3] = 'msg';
</span></span><span>    <span>$mapping[4] = 'printdate';
</span></span><span>    
</span><span>
</span><span>    <span>return $mapping;
</span></span><span><span>}</span></span>

Nous pouvons voir que le code C # est presque identique au code PHP que nous avons montré précédemment. C # est fortement dactylographié, nous voyons donc quelques instructions de coulée de type et nous devons explicitement donner un type à nos variables.

Avec le type de variable donné, nous pouvons profiter de la compréhension du code et de l'achèvement du code afin que la vitesse de développement soit beaucoup plus rapide.

Une autre façon d'accélérer notre développement PHP est de taper sur les macros de mots. Nous effectuons les mêmes actions que nous devons faire et les enregistrer avec une macro. La macro est dans Visual Basic, qui peut également être facilement transformé en php.

Plus important encore, la documentation officielle de Microsoft sur Office PIA, en particulier la documentation de l'espace de noms pour chaque application de bureau, est toujours le matériel de référence le plus détaillé. Les trois applications principalement utilisées sont:

  • Excel 2013: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel (v = Office.15) .aspx
  • Word 2013: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word(v=office.15).aspx
  • PowerPoint 2013: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.powerpoint (v = office.15) .aspx

Conclusion

Dans cet article, nous avons démontré comment remplir un document Word à l'aide de bibliothèques PHP COM et de capacités d'interopération Microsoft Office.

Les fenêtres et les bureaux sont largement utilisés dans la vie quotidienne. Avoir des connaissances sur la puissance de l'Office / Windows et du PHP sera essentiel pour tous les programmeurs Windows PHP.

Avec l'extension com de PHP, la porte de la maîtrise de cette combinaison est ouverte.

Si vous êtes intéressé par ce domaine de programmation, veuillez laisser vos commentaires et nous envisagerons d'avoir plus d'articles sur ce sujet. J'ai hâte de voir des applications plus réelles développées en utilisant cette approche.

Questions fréquemment posées (FAQ) sur la création de documents Microsoft Word avec PHP

Comment puis-je ajouter des images à mon document Word à l'aide de PHP?

Ajouter des images à votre document Word à l'aide de PHP est un processus simple. Vous pouvez utiliser la fonction addImage () fournie par la bibliothèque PHPword. Cette fonction vous permet de spécifier le chemin d'accès au fichier image que vous souhaitez ajouter. Vous pouvez également spécifier des paramètres supplémentaires tels que la largeur, la hauteur et l'alignement pour personnaliser l'apparence de l'image dans votre document. N'oubliez pas d'inclure les en-têtes nécessaires dans votre script PHP pour vous assurer que l'image est correctement interprétée et affichée dans le document Word.

Puis-je créer des tables dans des documents Word à l'aide de PHP?

Oui, vous pouvez Créez des tables dans des documents Word à l'aide de PHP. La bibliothèque PHPword fournit une fonction appelée addTable () que vous pouvez utiliser pour créer une table dans votre document. Vous pouvez ensuite utiliser les fonctions addrow () et addCell () pour ajouter des lignes et des colonnes à votre table. Vous pouvez également spécifier la largeur, la hauteur et l'alignement de votre table et de ses cellules pour personnaliser son apparence.

Comment puis-je appliquer des styles au texte dans mon document Word à l'aide de PHP?

Appliquer des styles de styles Pour envoyer un SMS dans votre document Word, l'utilisation de PHP est facile avec la bibliothèque PHPword. Vous pouvez utiliser la fonction addText () pour ajouter du texte à votre document, et vous pouvez spécifier un tableau de style comme deuxième paramètre à cette fonction. Ce tableau de style peut inclure des propriétés telles que la taille de la police, la couleur de la police, le gras, l'italique, le soulignement, etc. Vous pouvez également créer un objet de style à l'aide des fonctions addTitlestyle () ou addParagraphStyle () et l'appliquer à votre texte.

Puis-je convertir HTML en document Word en utilisant PHP?

Oui, vous pouvez convertir HTML en document Word à l'aide de PHP. La bibliothèque PHPword fournit une fonction appelée addHtml () que vous pouvez utiliser pour ajouter du contenu HTML à votre document. Cette fonction analyse le contenu HTML et le convertit en un format qui peut être affiché dans un document Word. Cependant, veuillez noter que toutes les balises HTML ne sont pas prises en charge, et certaines structures HTML complexes peuvent ne pas être correctement converties.

Comment puis-je enregistrer mon document Word à un emplacement spécifique en utilisant PHP?

Après Création de votre document Word à l'aide de PHP, vous pouvez l'enregistrer dans un emplacement spécifique à l'aide de la fonction SAVE () fournie par la bibliothèque PHPword. Cette fonction mène le chemin vers l'emplacement où vous souhaitez enregistrer le document sous forme de paramètre. Si l'emplacement spécifié n'existe pas, la fonction tentera de la créer. Si la fonction n'est pas en mesure de créer l'emplacement ou d'enregistrer le document, il lancera une exception.

Puis-je ajouter des en-têtes et des pieds de page à mon document Word à l'aide de PHP?

Oui, vous pouvez ajouter En-têtes et pieds de page à votre document Word à l'aide de PHP. La bibliothèque PHPword fournit des fonctions appelés addHeader () et addfooter () que vous pouvez utiliser pour ajouter des en-têtes et des pieds de page à votre document. Vous pouvez ensuite utiliser la fonction addText () pour ajouter du texte à vos en-têtes et à vos pieds. Vous pouvez également appliquer des styles à vos en-têtes et à vos pieds de page en utilisant les mêmes méthodes que celles décrites dans la question 3.

Comment puis-je ajouter des pauses de page à mon document Word à l'aide de PHP?

Vous pouvez ajouter des pauses de page à votre document Word à l'aide de PHP en utilisant la fonction addPageBreak () fournie par la bibliothèque PHPword. Cette fonction insère une rupture de page à la position actuelle dans le document, provoquant une appartenance à tous les contenus ultérieurs sur une nouvelle page.

Puis-je créer un document Word à partir d'un modèle utilisant php?

Oui , vous pouvez créer un document Word à partir d'un modèle utilisant PHP. La bibliothèque PHPword fournit une fonction appelée loadTemplate () que vous pouvez utiliser pour charger un modèle de document Word. Vous pouvez ensuite utiliser la fonction setValue () pour remplacer le texte d'espace réservé dans le modèle par votre propre contenu.

Comment puis-je ajouter des hyperliens à mon document Word à l'aide de PHP?

Vous pouvez ajouter des hyperliens à Votre document Word à l'aide de PHP en utilisant la fonction addLink () fournis par la bibliothèque PHPword. Cette fonction crée un hyperlien en position actuelle dans le document. Vous pouvez spécifier l'URL de l'hyperlien et le texte à afficher comme l'hyperlien.

Puis-je ajouter des listes à mon document Word à l'aide de PHP?

Oui, vous pouvez ajouter des listes à votre mot Document à l'aide de PHP. La bibliothèque PHPword fournit une fonction appelée addListItem () que vous pouvez utiliser pour ajouter un élément de liste à votre document. Vous pouvez spécifier le texte de l'élément de liste et la profondeur de l'élément dans la liste. Vous pouvez également appliquer des styles à vos éléments de liste en utilisant les mêmes méthodes que celles décrites dans la question 3.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
PHP Dependency Injection Container: un démarrage rapidePHP Dependency Injection Container: un démarrage rapideMay 13, 2025 am 12:11 AM

AphpdependencyInjectionContaineeRisatool That ManageSclassDensences, améliorant le codemodularité, la testabilité et la participation.

Injection de dépendance vs localisateur de service en PHPInjection de dépendance vs localisateur de service en PHPMay 13, 2025 am 12:10 AM

Sélectionnez DependencyInjection (DI) Pour les grandes applications, le service de service convient aux petits projets ou prototypes. 1) DI améliore la testabilité et la modularité du code par injection de constructeur. 2) Servicelocator obtient des services par l'enregistrement du centre, ce qui est pratique mais peut entraîner une augmentation du couplage du code.

Stratégies d'optimisation des performances PHP.Stratégies d'optimisation des performances PHP.May 13, 2025 am 12:06 AM

PhpapplicationsCanBeoptimizedForsPeedAndFiciency: 1) AutoringOpCacheInphp.ini, 2) Utilisation de PreparedStatementswithpodOrdatabasequeries, 3) Remplacingloopswitray_filterandArray_Mapfordataprocessing, 4) Configurationnginxasareproxy, 5)

Validation des e-mails PHP: garantir que les e-mails sont envoyés correctementValidation des e-mails PHP: garantir que les e-mails sont envoyés correctementMay 13, 2025 am 12:06 AM

PhpemailvalidationInvolvesthestreps: 1) formatvalidationusinggularexpressionstochecktheemailformat; 2) dnsvalidationtoensethedomainhasavalidmxrecord; 3) smtpvalidation, themostthoroughMethod.

Comment faire des applications PHP plus rapidementComment faire des applications PHP plus rapidementMay 12, 2025 am 12:12 AM

TomakePhpApplicationsFaster, suivez lesEsthets: 1) useopCodeCachingLikeOpcachetOsToreprecCompileScriptByteCode.2) MinimizedatabaseQueriesByusingSingQueryCachingAndefficientIndexing.3) Levier

Liste de contrôle d'optimisation des performances PHP: améliorez la vitesse maintenantListe de contrôle d'optimisation des performances PHP: améliorez la vitesse maintenantMay 12, 2025 am 12:07 AM

TOIMPROVEPHPAPPLICATIONSPEED, SuivreSesEtsts: 1) Activer le codécachement de la codécaching avec un accumulation de dotation

Injection de dépendance PHP: améliorer la testabilité du codeInjection de dépendance PHP: améliorer la testabilité du codeMay 12, 2025 am 12:03 AM

L'injection de dépendance (DI) améliore considérablement la testabilité du code PHP par des dépendances explicitement transitives. 1) Les classes de découplage en DI et les implémentations spécifiques rendent les tests et la maintenance plus flexibles. 2) Parmi les trois types, le constructeur injecte des dépendances d'expression explicites pour maintenir l'état cohérent. 3) Utilisez des conteneurs DI pour gérer les dépendances complexes pour améliorer la qualité du code et l'efficacité de développement.

Optimisation des performances PHP: optimisation des requêtes de base de donnéesOptimisation des performances PHP: optimisation des requêtes de base de donnéesMay 12, 2025 am 12:02 AM

DatabaseQueryOptimizationInphpinvolveSeveralStrategieSoenhancePerformance.1) selectOnlyneceSaryColumnStoredatatransfer.2) useIndexingTospeeDupDatareTeval.3) ImplémentQueryCachingTostoreResul

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Nordhold: Système de fusion, expliqué
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Version crackée d'EditPlus en chinois

Version crackée d'EditPlus en chinois

Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

Intégrez Eclipse au serveur d'applications SAP NetWeaver.