Skip to content

Commit

Permalink
Extend the Options section of the PDF Writer documentation (#2642)
Browse files Browse the repository at this point in the history
* Extend the Options section of the PDF Writer documentation

When I used PHPWord to write a PDF document, recently, I followed the
docs only to find that I also had to specify a PDF renderer — otherwise
the operation failed.

After a bit of research to figure out what to do to specify one, I
thought it only right to document what I learned in the official
documentation.

* Update the docs changelog detailing the PDF Writer additions

This change updates the changelog to include the enhancement made to the
PDF Writer docs that show how to specify a PDF renderer when working
with the PDF writer.

* Fixed docs

---------

Co-authored-by: Progi1984 <[email protected]>
  • Loading branch information
settermjd and Progi1984 authored Aug 7, 2024
1 parent 2daa50c commit f9ce804
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 0 deletions.
1 change: 1 addition & 0 deletions docs/changes/2.x/2.0.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
## Enhancements

- IOFactory : Added extractVariables method to extract variables from a document [@sibalonat](https://github.com/sibalonat) in [#2515](https://github.com/PHPOffice/PHPWord/pull/2515)
- PDF Writer : Documented how to specify a PDF renderer, when working with the PDF writer, as well as the three available choices by [@settermjd](https://github.com/settermjd) in [#2642](https://github.com/PHPOffice/PHPWord/pull/2642)

### Bug fixes

Expand Down
23 changes: 23 additions & 0 deletions docs/usage/writers.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,29 @@ $writer = IOFactory::createWriter($oPhpWord, 'PDF');
$writer->save(__DIR__ . '/sample.pdf');
```

#### Specify the PDF Renderer

Before PHPWord can write a PDF, you **must** specify the renderer to use and the path to it.
Currently, three renderers are supported:

- [DomPDF](https://github.com/dompdf/dompdf)
- [MPDF](https://mpdf.github.io/)
- [TCPDF](https://tcpdf.org/)

To specify the renderer you use two static `Settings` functions:

- `setPdfRendererName`: This sets the name of the renderer library to use.
Provide one of [`Settings`' three `PDF_` constants](https://github.com/PHPOffice/PHPWord/blob/master/src/PhpWord/Settings.php#L39-L41) to the function call.
- `setPdfRendererPath`: This sets the path to the renderer library.
This directory is the renderer's package directory within Composer's _vendor_ directory.

In the code below, you can see an example of setting MPDF as the desired PDF renderer.

```php
Settings::setPdfRendererName(Settings::PDF_RENDERER_MPDF);
Settings::setPdfRendererPath(__DIR__ . '/../vendor/mpdf/mpdf');
```

## RTF
The name of the writer is `RTF`.

Expand Down

0 comments on commit f9ce804

Please sign in to comment.