# ![PHPWord](images/phpword.svg) PHPWord is a library written in pure PHP that provides a set ofclasses to write to different document file formats, i.e. [Microsoft Office Open XML](http://en.wikipedia.org/wiki/Office_Open_XML)(`.docx`), OASIS [Open Document Format for Office Applications](http://en.wikipedia.org/wiki/OpenDocument) (`.odt`), [Rich Text Format](http://en.wikipedia.org/wiki/Rich_Text_Format) (`.rtf`), [Microsoft Word Binary File](https://en.wikipedia.org/wiki/Doc_(computing)) (`.doc`), HTML (`.html`), and PDF (`.pdf`). PHPWord is an open source project licensed under the terms of [LGPL version 3](https://github.com/PHPOffice/PHPWord/blob/master/COPYING.LESSER). PHPWord is aimed to be a high quality software product by incorporating [continuous integration and unit testing](https://github.com/PHPOffice/PHPWord/actions/workflows/php.yml). You can learn more about PHPWord by reading this Developers'Documentation. ## Features - Set document properties, e.g. title, subject, and creator. - Create document sections with different settings, e.g. portrait/landscape, page size, and page numbering - Create header and footer for each sections - Set default font type, font size, and paragraph style - Use UTF-8 and East Asia fonts/characters - Define custom font styles (e.g. bold, italic, color) and paragraph styles (e.g. centered, multicolumns, spacing) either as named style or inline in text - Insert paragraphs, either as a simple text or complex one (a text run) that contains other elements - Insert titles (headers) and table of contents - Insert text breaks and page breaks - Insert and format images, either local, remote, or as page watermarks - Insert binary OLE Objects such as Excel or Visio - Insert and format table with customized properties for each rows (e.g. repeat as header row) and cells (e.g. background color, rowspan, colspan) - Insert list items as bulleted, numbered, or multilevel - Insert hyperlinks - Insert footnotes and endnotes - Insert drawing shapes (arc, curve, line, polyline, rect, oval) - Insert charts (pie, doughnut, bar, line, area, scatter, radar) - Insert form fields (textinput, checkbox, and dropdown) - Create document from templates - Use XSL 1.0 style sheets to transform headers, main document part, and footers of an OOXML template - ... and many more features on progress ## File formats Below are the supported features for each file formats. ### Writers | Features | | OOXML | ODF | RTF | HTML | PDF | |---------------------------|----------------------|--------|-------|-------|--------|--------| | **Document Properties** | Standard | :material-check: | :material-check: | :material-check: | :material-check: | :material-check: | | | Custom | :material-check: | :material-check: | | | | | **Element Type** | Text | :material-check: | :material-check: | :material-check: | :material-check: | :material-check: | | | Text Run | :material-check: | :material-check: | :material-check: | :material-check: | :material-check: | | | Title | :material-check: | :material-check: | | :material-check: | :material-check: | | | Link | :material-check: | :material-check: | :material-check: | :material-check: | :material-check: | | | Preserve Text | :material-check: | | | | | | | Text Break | :material-check: | :material-check: | :material-check: | :material-check: | :material-check: | | | Page Break | :material-check: | | :material-check: | | | | | List | :material-check: | :material-check: | | | | | | Table | :material-check: | :material-check: | :material-check: | :material-check: | :material-check: | | | Image | :material-check: | :material-check: | :material-check: | :material-check: | | | | Object | :material-check: | | | | | | | Watermark | :material-check: | | | | | | | Table of Contents | :material-check: | | | | | | | Header | :material-check: | | | | | | | Footer | :material-check: | | | | | | | Footnote | :material-check: | | | :material-check: | | | | Endnote | :material-check: | | | :material-check: | | | | Comments | :material-check: | | | | | | **Graphs** | 2D basic graphs | :material-check: | | | | | | | 2D advanced graphs | | | | | | | | 3D graphs | :material-check: | | | | | | **Math** | OMML support | :material-check: | | | | | | | MathML support | | :material-check: | | | | | **Bonus** | Encryption | | | | | | | | Protection | | | | | | ### Readers | Features | | OOXML | DOC | ODF | RTF | HTML | |---------------------------|----------------------|--------|-------|-------|-------|-------| | **Document Properties** | Standard | :material-check: | | | | | | | Custom | :material-check: | | | | | | **Element Type** | Text | :material-check: | :material-check: | :material-check: | :material-check: | :material-check: | | | Text Run | :material-check: | | | | | | | Title | :material-check: | | :material-check: | | | | | Link | :material-check: | :material-check: | | | | | | Preserve Text | :material-check: | | | | | | | Text Break | :material-check: | :material-check: | | | | | | Page Break | :material-check: | | | | | | | List | :material-check: | | :material-check: | | :material-check: | | | Table | :material-check: | | | | :material-check: | | | Image | :material-check: | :material-check: | | | | | | Object | | | | | | | | Watermark | | | | | | | | Table of Contents | | | | | | | | Header | :material-check: | | | | | | | Footer | :material-check: | | | | | | | Footnote | :material-check: | | | | | | | Endnote | :material-check: | | | | | | | Comments | :material-check: | | | | | | **Graphs** | 2D basic graphs | | | | | | | | 2D advanced graphs | | | | | | | | 3D graphs | | | | | | | **Math** | OMML support | :material-check: | | | | | | | MathML support | | :material-check: | | | | | **Bonus** | Encryption | | | | | | | | Protection | | | | | | ## Contributing We welcome everyone to contribute to PHPWord. Below are some of the things that you can do to contribute: - Read [our contributing guide](https://github.com/PHPOffice/PHPWord/blob/master/CONTRIBUTING.md) - [Fork us](https://github.com/PHPOffice/PHPWord/fork) and [request a pull](https://github.com/PHPOffice/PHPWord/pulls) to the [master](https://github.com/PHPOffice/PHPWord/tree/master) branch - Submit [bug reports or feature requests](https://github.com/PHPOffice/PHPWord/issues) to GitHub - Follow [@PHPOffice](https://twitter.com/PHPOffice) on Twitter