Introduction

PHPWord is a library written in pure PHP that provides a set of classes to write to and read from different document file formats. The current version of PHPWord supports Microsoft Office Open XML (OOXML or OpenXML), OASIS Open Document Format for Office Applications (OpenDocument or ODF), and Rich Text Format (RTF).

PHPWord is an open source project licensed under the terms of LGPL version 3. PHPWord is aimed to be a high quality software product by incorporating continuous integration and unit testing. You can learn more about PHPWord by reading this Developers’ Documentation and the API 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 right-to-left text
  • 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)
  • Insert comments
  • 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
  Custom      
Element Type Text
  Text Run
  Title  
  Link
  Preserve Text        
  Text Break
  Page Break      
  List        
  Table
  Image  
  Object        
  Watermark        
  Table of Contents        
  Header        
  Footer        
  Footnote      
  Endnote      
  Comments        
Graphs 2D basic graphs        
  2D advanced graphs          
  3D graphs        
Math OMML support          
  MathML support          
Bonus Encryption          
  Protection          

Readers

Features   OOXML DOC ODF RTF HTML
Document Properties Standard        
  Custom        
Element Type Text
  Text Run        
  Title      
  Link      
  Preserve Text        
  Text Break      
  Page Break        
  List    
  Table      
  Image      
  Object          
  Watermark          
  Table of Contents          
  Header        
  Footer        
  Footnote        
  Endnote        
  Comments          
Graphs 2D basic graphs          
  2D advanced graphs          
  3D graphs          
Math OMML support          
  MathML support          
Bonus Encryption          
  Protection          

Contributing

We welcome everyone to contribute to PHPWord. Below are some of the things that you can do to contribute.