<?php require_once dirname(dirname(__DIR__)) . DIRECTORY_SEPARATOR . 'Bootstrap.php'; use Zend\Service\LiveDocx\Helper; use Zend\Service\LiveDocx\MailMerge; Helper::printLine(PHP_EOL . 'Field and Block Field Names (merge fields)' . PHP_EOL . PHP_EOL . 'The following templates contain the listed field or block field names:' . PHP_EOL . PHP_EOL); $mailMerge = new MailMerge(); $mailMerge->setUsername(DEMOS_ZEND_SERVICE_LIVEDOCX_USERNAME)->setPassword(DEMOS_ZEND_SERVICE_LIVEDOCX_PASSWORD); // ----------------------------------------------------------------------------- $templateName = 'template-1-text-field.docx'; $mailMerge->setLocalTemplate($templateName); printf('Field names in %s:%s', $templateName, PHP_EOL); $fieldNames = $mailMerge->getFieldNames(); foreach ($fieldNames as $fieldName) { printf('- %s%s', $fieldName, PHP_EOL); } // ----------------------------------------------------------------------------- $templateName = 'template-2-text-fields.doc'; $mailMerge->setLocalTemplate($templateName); printf('%sField names in %s:%s', PHP_EOL, $templateName, PHP_EOL); $fieldNames = $mailMerge->getFieldNames(); foreach ($fieldNames as $fieldName) { printf('- %s%s', $fieldName, PHP_EOL); } // ----------------------------------------------------------------------------- $templateName = 'template-block-fields.doc'; $mailMerge->setLocalTemplate($templateName); printf('%sField names in %s:%s', PHP_EOL, $templateName, PHP_EOL); $fieldNames = $mailMerge->getFieldNames(); foreach ($fieldNames as $fieldName) { printf('- %s%s', $fieldName, PHP_EOL);
// Logger to output status messages $logger = new Logger(new Writer('php://stdout')); // ----------------------------------------------------------------------------- // Create temporary directory $tempDirectory = sys_get_temp_dir() . DIRECTORY_SEPARATOR . md5(rand(1, 10000) . __FILE__); if (is_dir($tempDirectory)) { recursiveRemoveDirectory($tempDirectory); } $logger->log(sprintf('Making temporary directory %s.', $tempDirectory), Logger::INFO); mkdir($tempDirectory); // ----------------------------------------------------------------------------- // Generate temporary documents $tempFilenames = array(); $mailMerge = new MailMerge(); $mailMerge->setUsername(DEMOS_ZEND_SERVICE_LIVEDOCX_USERNAME)->setPassword(DEMOS_ZEND_SERVICE_LIVEDOCX_PASSWORD); $mailMerge->setLocalTemplate('template.docx'); $date = new DateTime(); for ($iteration = 1; $iteration <= $iterations; $iteration++) { $tempFilename = sprintf('%s%s%010s.pdf', $tempDirectory, DIRECTORY_SEPARATOR, $iteration); $tempFilenames[] = $tempFilename; $mailMerge->assign('software', randomString())->assign('licensee', randomString())->assign('company', randomString())->assign('date', $date->format('Y-m-d'))->assign('time', $date->format('H:i:s'))->assign('city', randomString())->assign('country', randomString()); $mailMerge->createDocument(); file_put_contents($tempFilename, $mailMerge->retrieveDocument('pdf')); $logger->log(sprintf('Generating temporary document %s.', $tempFilename), Logger::INFO); } unset($mailMerge); // ----------------------------------------------------------------------------- // Concatenate temporary documents and write output document $outputFilename = __DIR__ . DIRECTORY_SEPARATOR . 'document-concat.pdf'; $logger->log('Concatenating temporary documents...', Logger::INFO); if (true === concatenatePdfFilenames($tempFilenames, $outputFilename, $processor)) {
<?php require_once dirname(dirname(__DIR__)) . DIRECTORY_SEPARATOR . 'Bootstrap.php'; /** * Converting documents between supported formats * * The primary goal of the Zend Framework LiveDocx component is to populate templates * with textual data to generate word processing documents. It can, however, * also be used to convert word processing documents between supported formats. * * For a list of supported file formats see: http://is.gd/6YKDu * * In this demo application, the file 'document.doc' is converted to 'document.pdf' * * In a future version of the LiveDocx service, a converter component will be * made available. */ use Zend\Service\LiveDocx\MailMerge; $mailMerge = new MailMerge(); $mailMerge->setUsername(DEMOS_ZEND_SERVICE_LIVEDOCX_USERNAME)->setPassword(DEMOS_ZEND_SERVICE_LIVEDOCX_PASSWORD); $mailMerge->setLocalTemplate('document.doc'); $mailMerge->assign('dummyFieldName', 'dummyFieldValue'); // necessary as of LiveDocx 1.2 $mailMerge->createDocument(); $document = $mailMerge->retrieveDocument('pdf'); file_put_contents('document.pdf', $document); unset($mailMerge);