# 0.10.0 (4 May 2014) This release marked heavy refactorings on internal code structure with the creation of some abstract classes to reduce code duplication. `Element` subnamespace is introduced in this release to replace `Section`. Word2007 reader capability is greatly enhanced. Endnote is introduced. List numbering is now customizable. Basic HTML and PDF writing support is enabled. Basic ODText reader is introduced. ### Features - Image: Get image dimensions without EXIF extension - @andrew-kzoo #184 - Table: Add `tblGrid` element for Libre/Open Office table sizing - @gianis6 #183 - Footnote: Ability to insert textbreak in footnote `$footnote->addTextBreak()` - @ivanlanin - Footnote: Ability to style footnote reference mark by using `FootnoteReference` style - @ivanlanin - Font: Add `bgColor` to font style to define background using HEX color - @jcarignan #168 - Table: Add `exactHeight` to row style to define whether row height should be exact or atLeast - @jcarignan #168 - Element: New `CheckBox` element for sections and table cells - @ozilion #156 - Settings: Ability to use PCLZip as alternative to ZipArchive - @bskrtich @ivanlanin #106, #140, #185 - Template: Ability to find & replace variables in headers & footers - @dgudgeon #190 - Template: Ability to clone & delete block of text using `cloneBlock` and `deleteBlock` - @diego-vieira #191 - TOC: Ability to have two or more TOC in one document and to set min and max depth for TOC - @Pyreweb #189 - Table: Ability to add footnote in table cell - @ivanlanin #187 - Footnote: Ability to add image in footnote - @ivanlanin #187 - ListItem: Ability to add list item in header/footer - @ivanlanin #187 - CheckBox: Ability to add checkbox in header/footer - @ivanlanin #187 - Link: Ability to add link in header/footer - @ivanlanin #187 - Object: Ability to add object in header, footer, textrun, and footnote - @ivanlanin #187 - Media: Add `Media::resetElements()` to reset all media data - @juzi #19 - General: Add `Style::resetStyles()` - @ivanlanin #187 - DOCX Reader: Ability to read header, footer, footnotes, link, preservetext, textbreak, pagebreak, table, list, image, and title - @ivanlanin - Endnote: Ability to add endnotes - @ivanlanin - ListItem: Ability to create custom list and reset list number - @ivanlanin #10, #198 - ODT Writer: Basic table writing support - @ivanlanin - Image: Keep image aspect ratio if only 1 dimension styled - @japonicus #194 - HTML Writer: Basic HTML writer: text, textrun, link, title, textbreak, table, image (as Base64), footnote, endnote - @ivanlanin #203, #67, #147 - PDF Writer: Basic PDF writer using DomPDF: All HTML element except image - @ivanlanin #68 - DOCX Writer: Change `docProps/app.xml` `Application` to `PHPWord` - @ivanlanin - DOCX Writer: Create `word/settings.xml` and `word/webSettings.xml` dynamically - @ivanlanin - ODT Writer: Basic image writing - @ivanlanin - ODT Writer: Link writing - @ivanlanin - ODT Reader: Basic ODText Reader - @ivanlanin #71 - Section: Ability to define gutter and line numbering - @ivanlanin - Font: Small caps, all caps, and double strikethrough - @ivanlanin #151 - Settings: Ability to use measurement unit other than twips with `setMeasurementUnit` - @ivanlanin #199 - Style: Remove `bgColor` from `Font`, `Table`, and `Cell` and put it into the new `Shading` style - @ivanlanin - Style: New `Indentation` and `Spacing` style - @ivanlanin - Paragraph: Ability to define first line and right indentation - @ivanlanin ### Bugfixes - Footnote: Footnote content doesn't show footnote reference number - @ivanlanin #170 - Documentation: Error in a function - @theBeerNut #195 ### Deprecated - `createTextRun` replaced by `addTextRun` - `createFootnote` replaced by `addFootnote` - `createHeader` replaced by `addHeader` - `createFooter` replaced by `addFooter` - `createSection` replaced by `addSection` - `Element\Footnote::getReferenceId` replaced by `Element\AbstractElement::getRelationId` - `Element\Footnote::setReferenceId` replaced by `Element\AbstractElement::setRelationId` - `Footnote::addFootnoteLinkElement` replaced by `Media::addElement` - `Footnote::getFootnoteLinkElements` replaced by `Media::getElements` - All current methods on `Media` - `Element\Link::getLinkSrc` replaced by `Element\Link::getTarget` - `Element\Link::getLinkName` replaced by `Element\Link::getText` - `Style\Cell::getDefaultBorderColor` ### Miscellaneous - Documentation: Simplify page level docblock - @ivanlanin #179 - Writer: Refactor writer classes and create a new `Write\AbstractWriter` abstract class - @ivanlanin #160 - General: Refactor folders: `Element` and `Exception` - @ivanlanin #187 - General: Remove legacy `HashTable` and `Shared\ZipStreamWrapper` and all related properties/methods - @ivanlanin #187 - Element: New `AbstractElement` abstract class - @ivanlanin #187 - Media: Refactor media class to use one method for all docPart (section, header, footer, footnote) - @ivanlanin #187 - General: Remove underscore prefix from all private properties name - @ivanlanin #187 - General: Move Section `Settings` to `Style\Section` - @ivanlanin #187 - General: Give `Abstract` prefix and `Interface` suffix for all abstract classes and interfaces as per [PHP-FIG recommendation](https://github.com/php-fig/fig-standards/blob/master/bylaws/002-psr-naming-conventions.md) - @ivanlanin #187 - Style: New `Style\AbstractStyle` abstract class - @ivanlanin #187 - Writer: New 'ODText\Base` class - @ivanlanin #187 - General: Rename `Footnote` to `Footnotes` to reflect the nature of collection - @ivanlanin - General: Add some unit tests for Shared & Element (100%!) - @Progi1984 - Test: Add some samples and tests for image wrapping style - @brunocasado #59 - Refactor: Remove Style\Tabs - @ivanlanin - Refactor: Apply composite pattern for writers - @ivanlanin - Refactor: Split `AbstractContainer` from `AbstractElement` - @ivanlanin - Refactor: Apply composite pattern for Word2007 reader - @ivanlanin