section breakType

This commit is contained in:
Ivan Lanin 2014-01-01 20:12:51 +07:00
parent 3037fbf59e
commit 3fa49ee53b
3 changed files with 22 additions and 88 deletions

View File

@ -152,6 +152,7 @@ class PHPWord_Section_Settings
private $_colsNum; private $_colsNum;
private $_colsSpace; private $_colsSpace;
private $_breakType;
/** /**
* Create new Section Settings * Create new Section Settings
@ -174,7 +175,8 @@ class PHPWord_Section_Settings
$this->_borderBottomSize = null; $this->_borderBottomSize = null;
$this->_borderBottomColor = null; $this->_borderBottomColor = null;
$this->_colsNum = 1; $this->_colsNum = 1;
$this->_colsSpace = 360; $this->_colsSpace = 0.5 * 1440 / 2.54; // in twips: 1 twip = 1/1440 in; 1 cm = 2.54 in
$this->_breakType = null;
} }
/** /**
@ -562,4 +564,12 @@ class PHPWord_Section_Settings
$this->_colsSpace = $pValue; $this->_colsSpace = $pValue;
return $this; return $this;
} }
public function getBreakType() {
return $this->_breakType;
}
public function setBreakType($pValue = null) {
$this->_breakType = $pValue;
return $this;
}
} }

View File

@ -139,6 +139,7 @@ class PHPWord_Writer_Word2007_Document extends PHPWord_Writer_Word2007_Base
$colsNum = $_settings->getColsNum(); $colsNum = $_settings->getColsNum();
$colsSpace = $_settings->getColsSpace(); $colsSpace = $_settings->getColsSpace();
$breakType = $_settings->getBreakType();
$objWriter->startElement('w:sectPr'); $objWriter->startElement('w:sectPr');
@ -155,6 +156,13 @@ class PHPWord_Writer_Word2007_Document extends PHPWord_Writer_Word2007_Base
$objWriter->endElement(); $objWriter->endElement();
} }
// http://www.schemacentral.com/sc/ooxml/a-w_val-43.html
if (!is_null($breakType)) {
$objWriter->startElement('w:type');
$objWriter->writeAttribute('w:val', $breakType);
$objWriter->endElement();
}
if (!is_null($_footer)) { if (!is_null($_footer)) {
$rId = $_footer->getRelationId(); $rId = $_footer->getRelationId();
$objWriter->startElement('w:footerReference'); $objWriter->startElement('w:footerReference');

View File

@ -1,100 +1,16 @@
# PHPWord - OpenXML - Read, Write and Create Word documents in PHP # PHPWord - OpenXML - Read, Write and Create Word documents in PHP
PHPWord is a library written in PHP that create word documents. 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.
## Forked features by Ivan Lanin ## Add features in this fork
* Superscript/subscript `w:vertAlign` * Superscript/subscript `w:vertAlign`
* Hanging * Hanging
* Section with column * Section with column
* Softbreak (SHIFT + ENTER) in Text Run * Softbreak (SHIFT + ENTER) in Text Run
* Redefine normal paragraph style and base all other style from it * Redefine normal paragraph style and base all other style from it
* Section `breakType`. Used especially for continuous column
## Want to contribute?
Fork us!
## Requirements
* PHP version 5.3.0 or higher
## License ## License
PHPWord is licensed under [LGPL (GNU LESSER GENERAL PUBLIC LICENSE)](https://github.com/PHPOffice/PHPWord/blob/master/license.md) PHPWord is licensed under [LGPL (GNU LESSER GENERAL PUBLIC LICENSE)](https://github.com/PHPOffice/PHPWord/blob/master/license.md)
## Installation
It is recommended that you install the PHPWord library [through composer](http://getcomposer.org/). To do so, add
the following lines to your ``composer.json``.
```json
{
"require": {
"phpoffice/phpword": "dev-master"
}
}
```
## Usage
The following is a basic example of the PHPWord library.
```php
$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');
```
## Images
You can add images easily using the following example.
```php
$section = $PHPWord->createSection();
$section->addImage('mars.jpg');
```
Images settings include:
* ``width`` width in pixels
* ``height`` height in pixels
* ``align`` image alignment, __left__, __right__ or __center__
* ``marginTop`` top margin in inches, can be negative
* ``marginLeft`` left margin in inches, can be negative
* ``wrappingStyle`` can be inline, __square__, __tight__, __behind__, __infront__
To add an image with settings, consider the following example.
```php
$section->addImage(
'mars.jpg',
array(
'width' => 100,
'height' => 100,
'marginTop' => -1,
'marginLeft' => -1,
wrappingStyle => 'behind'
)
);
```