示例#1
-5
<?php

include_once 'Sample_Header.php';
// Template processor instance creation
echo date('H:i:s'), ' Creating new TemplateProcessor instance...', EOL;
$templateProcessor = new \PhpOffice\PhpWord\TemplateProcessor('resources/Sample_23_TemplateBlock.docx');
// Will clone everything between ${tag} and ${/tag}, the number of times. By default, 1.
$templateProcessor->cloneBlock('CLONEME', 3);
// Everything between ${tag} and ${/tag}, will be deleted/erased.
$templateProcessor->deleteBlock('DELETEME');
echo date('H:i:s'), ' Saving the result document...', EOL;
$templateProcessor->saveAs('results/Sample_23_TemplateBlock.docx');
echo getEndingNotes(array('Word2007' => 'docx'));
if (!CLI) {
    include_once 'Sample_Footer.php';
}
// Template processor instance creation
echo date('H:i:s'), ' Creating new TemplateProcessor instance...', EOL;
$templateProcessor = new \PhpOffice\PhpWord\TemplateProcessor('resources/Sample_07_TemplateCloneRow.docx');
$block = $templateProcessor->getTemplateStructure();
echo date('H:i:s'), ' Done getting template structure...', EOL;
// Variables on different parts of document
$templateProcessor->setValue('weekday', htmlspecialchars(date('l')));
// On section/content
$templateProcessor->setValue('time', htmlspecialchars(date('H:i')));
// On footer
$templateProcessor->setValue('serverName', htmlspecialchars(realpath(__DIR__)));
// On header
// Simple table
$templateProcessor->cloneRow('rowValue', 10);
// clone block
$templateProcessor->cloneBlock('blockToday', 2);
$templateProcessor->deleteBlock('deleteBlock');
$templateProcessor->setValue('rowValue#1', htmlspecialchars('Sun'));
$templateProcessor->setValue('rowValue#2', htmlspecialchars('Mercury'));
$templateProcessor->setValue('rowValue#3', htmlspecialchars('Venus'));
$templateProcessor->setValue('rowValue#4', htmlspecialchars('Earth'));
$templateProcessor->setValue('rowValue#5', htmlspecialchars('Mars'));
$templateProcessor->setValue('rowValue#6', htmlspecialchars('Jupiter'));
$templateProcessor->setValue('rowValue#7', htmlspecialchars('Saturn'));
$templateProcessor->setValue('rowValue#8', htmlspecialchars('Uranus'));
$templateProcessor->setValue('rowValue#9', htmlspecialchars('Neptun'));
$templateProcessor->setValue('rowValue#10', htmlspecialchars('Pluto'));
$templateProcessor->setValue('rowNumber#1', htmlspecialchars('1'));
$templateProcessor->setValue('rowNumber#2', htmlspecialchars('2'));
$templateProcessor->setValue('rowNumber#3', htmlspecialchars('3'));
$templateProcessor->setValue('rowNumber#4', htmlspecialchars('4'));
示例#3
-8
 function mergeDOCX($source_file, $merged_file)
 {
     // Important: we get the merge data first, because the phpWord
     // autoloader included below stuffs up the Jethro autoloader
     // and causes errors.
     $data = array_values($this->getMergeData());
     // NB THIS FILE HAS BEEN CHANGED!
     require_once 'include/phpword/src/PhpWord/Autoloader.php';
     \PhpOffice\PhpWord\Autoloader::register();
     \PhpOffice\PhpWord\Settings::setTempDir(dirname($source_file));
     $templateProcessor = new \PhpOffice\PhpWord\TemplateProcessor($source_file);
     if (!$templateProcessor->cloneBlock('MERGEBLOCK', count($data))) {
         $vars = $templateProcessor->getVariables();
         if (empty($vars)) {
             trigger_error("You don't seem to have included any \${keywords} in your file; cannot merge");
             return;
         }
         $templateProcessor->cloneRow(reset($vars), count($data));
     }
     foreach ($data as $num => $row) {
         foreach ($row as $k => $v) {
             $templateProcessor->setValue(strtoupper($k) . '#' . ($num + 1), $this->xmlEntities($v));
         }
     }
     $templateProcessor->saveAs($merged_file);
 }