markocupic / phpoffice-bundle
PhpOffice helper classes
Installs: 3 506
Dependents: 6
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 0
Open Issues: 0
Type:contao-bundle
Requires
- php: ^8.1
- contao/core-bundle: ^4.13 || ^5.0
- phpoffice/phpword: ^1.0
README
MsWordTemplateProcessor
Generate easily Microsoft Word documents:
Watch the demo template and the result
<?php // Create phpword instance $objPhpWord = new Markocupic\PhpOffice\PhpWord\MsWordTemplateProcessor('vendor/markocupic/phpoffice-bundle/src/example/templates/msword_template.docx', 'system/tmp/msword_result.docx'); // Options defaults //$optionsDefaults = array( // 'multiline' => false, // 'limit' => -1 //); // Simple replacement $objPhpWord->replace('category', 'Elite men'); // Another multiline replacement $options = array('multiline' => true); $objPhpWord->replace('sometext', 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt', $options); // Bold text $objPhpWord->replace('sometext', '<B>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt</B>', $options); // Image replacement $objPhpWord->replaceWithImage('my-best-image', 'vendor/markocupic/phpoffice-bundle/src/example/assets/my-best-image.jpg', array('width' => '160mm')); // Clone rows // Push first datarecord to cloned row $objPhpWord->createClone('rank'); $objPhpWord->addToClone('rank', 'rank', '1', array('multiline' => false)); $objPhpWord->addToClone('rank', 'number', '501', array('multiline' => false)); $objPhpWord->addToClone('rank', 'firstname', 'James', array('multiline' => false)); $objPhpWord->addToClone('rank', 'lastname', 'First', array('multiline' => false)); $objPhpWord->addToClone('rank', 'time', '01:23:55', array('multiline' => false)); // Add an image with a predefined height $objPhpWord->addToClone('rank', 'avatar', 'vendor/markocupic/phpoffice-bundle/src/example/assets/avatar_1.png', array('type' => 'image', 'height' => '30mm')); // Push second datarecord to cloned row $objPhpWord->createClone('rank'); $objPhpWord->addToClone('rank', 'rank', '2', array('multiline' => false)); $objPhpWord->addToClone('rank', 'number', '503', array('multiline' => false)); $objPhpWord->addToClone('rank', 'firstname', 'James', array('multiline' => false)); $objPhpWord->addToClone('rank', 'lastname', 'Last', array('multiline' => false)); $objPhpWord->addToClone('rank', 'time', '01:25:55', array('multiline' => false)); // Add an image with a predefined width $objPhpWord->addToClone('rank', 'avatar', 'vendor/markocupic/phpoffice-bundle/src/example/assets/avatar_2.png', array('type' => 'image', 'width' => '28.3mm')); // Push third datarecord, etc... //$objPhpWord->createClone('rank'); // .... etc. // Create $objPhpWord->generate();