PHPWord is a library written in PHP that create word documents. No Windows operating system is needed for usage because the result are docx files (Office Open XML) that can be opened by all major office software.
Fork us!
- PHP version 5.3.0 or higher
PHPWord is licensed under LGPL (GNU LESSER GENERAL PUBLIC LICENSE)
It is recommended that you install the PHPWord library through composer. To do so, add
the following lines to your composer.json
.
{
"require": {
"phpoffice/phpword": "dev-master"
}
}
The following is a basic example of the PHPWord library.
$PHPWord = new PHPWord();
// Every element you want to append to the word document is placed in a section. So you need a section:
$section = $PHPWord->createSection();
// After creating a section, you can append elements:
$section->addText('Hello world!');
// You can directly style your text by giving the addText function an array:
$section->addText('Hello world! I am formatted.', array('name'=>'Tahoma', 'size'=>16, 'bold'=>true));
// If you often need the same style again you can create a user defined style to the word document
// and give the addText function the name of the style:
$PHPWord->addFontStyle('myOwnStyle', array('name'=>'Verdana', 'size'=>14, 'color'=>'1B2232'));
$section->addText('Hello world! I am formatted by a user defined style', 'myOwnStyle');
// You can also putthe appended element to local object an call functions like this:
$myTextElement = $section->addText('Hello World!');
$myTextElement->setBold();
$myTextElement->setName('Verdana');
$myTextElement->setSize(22);
// At least write the document to webspace:
$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007');
$objWriter->save('helloWorld.docx');
You can add images easily using the following example.
$section = $PHPWord->createSection();
$section->addImage('mars.jpg');
Images settings include:
width
width in pixelsheight
height in pixelsalign
image alignment, left, right or centermarginTop
top margin in inches, can be negativemarginLeft
left margin in inches, can be negativewrappingStyle
can be inline, square, tight, behind, infront
To add an image with settings, consider the following example.
$section->addImage(
'mars.jpg',
array(
'width' => 100,
'height' => 100,
'marginTop' => -1,
'marginLeft' => -1,
wrappingStyle => 'behind'
)
);