hello guys, i'm using the latest version of php and phpdocx and i'm using the msword method and a windows server.
I was converting a template into multiple docx and then converting them into multiple pdf, which was a bit slow and not convenient so i decided to merge the docx first and then convert the merged docx in pdf. The merged docx is perfect and is built in no time but when i try to convert it in pdf, i get a timeout. So i'm wondering why, or maybe what's the fastest way that i can convert my template into a pdf with multiple pages.
Here's my code :
<?php
require_once './Assets/phpdocx/14.5/classes/CreateDocx.php';
require_once './Assets/phpdocx/14.5/classes/MultiMerge.php';
$V_docx = new CreateDocxFromTemplate('./templateTableau.docx');
$V_merge = new MultiMerge();
$V_listeDoc = array(); // Initialisation de la liste des documents à fusionner
$V_variables = $V_docx->getTemplateVariables();
$V_article = $_POST['article'];
$V_designation = $_POST['designation'];
$V_signature = $_POST['signature'];
$V_nbimpression = $_POST['nbimpression'];
$V_arrayVariables = array(
$V_variables['document'][0] => $V_article,
$V_variables['document'][1] => $V_designation,
$V_variables['document'][2] => $V_signature,
$V_variables['document'][3] => $V_signature
);
$V_docx->replaceVariableByText($V_arrayVariables);
for ($V_i = 1; $V_i <= $V_nbimpression; $V_i++)
{
$V_filePath = './Tmp/genere/document' . $V_i . '.docx';
if (file_exists($V_filePath))
{
unlink($V_filePath); // Supprime le fichier existant
}
$V_docx->createDocx($V_filePath);
$V_listeDoc[] = $V_filePath; // Ajoute le chemin du fichier à la liste des documents à fusionner
}
$V_outputDocxPath = 'C:\\inetpubPHP\\wwwroot\\Tmp\\genere\\document_merged.docx';
// Vérifier si le document fusionné existe déjÃ
if (file_exists($V_outputDocxPath))
{
unlink($V_outputDocxPath); // Supprime le fichier existant avant de fusionner
}
// Fusionner les documents en un seul fichier docx avant la conversion en PDF
$V_merge->mergeDocx($V_listeDoc[0], array_slice($V_listeDoc, 1), $V_outputDocxPath, array('mergeType' => 0));
// Convertir le document fusionné en PDF
$V_docx->transformDocument($V_outputDocxPath, str_replace('.docx', '.pdf', $V_outputDocxPath), 'msword');