Compatible with DokuWiki
Similar to bookcreator, ebookexport, html2pdf, pdfex, xslfo
Needed for bookcreator, pdftools
Previous developer: Luigi Micco
Search and install the plugin using the Extension Manager. Refer to Plugins on how to install plugins manually.
Only PHP 7.4 up to PHP 8.1 are supported by dw2pdf plugin. At rather short term support for PHP 7.4 will be dropped.
To export (png) images with an alpha channel (used for transparency), you need to install the GD library for PHP. For example on Debian systems:
sudo apt-get install php-gd
Also see the PHP with gd tips page.
The goal of this plugin was to provide a simple, ready-to-go PDF converter that almost faithfully replicates the screen view of your wiki pages (i.e. doesn't convert them to a print-document format like the latex plugin). It also bundles the necessary fonts and libraries (hence the 48MB size) so that you should not need to do any configuration to get it up and running as quickly as possible.
Since July 2017 version 7.0-beta of mPDF library is included, which supports PHP7, but not PHP 5.4 and older.
As (temporary) fallback the following old releases could be found:
There are three ways to export:
do=export_pdf
URL parameter. This starts the PDF export of the page. Some templates let the plugin extend the pagetools automatically. For other templates you need to implement this yourself to add a button or similar somewhere in your template design.do=export_pdfns
which let you export a chosen entire namespace as one PDF (e.g. use &do=export_pdfns&book_ns=my:namespace&book_title=Mytitle
(See Configuration options on how to exclude specific pages). Or create a link with the syntax).Please refer to the following pages to learn how to use or support the plugin:
To create a link in any wiki page to export any namespace, you can use the following syntax:
~~PDFNS>namespace|pdftitle~~
namespace
is the namespace you want to exportpdftitle
is the title of the generated output PDF&book_order=pagename
) by simply appending them to the pdftitle.
Handling of startpages: If the page <namespace>:start
doesn't exist, it checks if the page with the name <namespace>
exists and will add to the pdf as well.
Please report issues and requests in the issue tracker:
https://github.com/splitbrain/dokuwiki-plugin-dw2pdf/issues/
If you are using the dw2pdf plugin and you don't get the wanted output, than you might investigate the data during its workflow. The dw2pdf plugin uses the HTML code of the print version of an wiki article (which has a leaner styling than the screen version) and converts this code with the mPDF-library to a pdf-file.
Some options to investigate with the intermediate results are:
How-to output the plain html (just before it is fed into the mPDF library):
&debughtml=text
displays html as plain text in the browser&debughtml=html
displays html rendered by the browserSee for the debugging options of the mPDF library related to images: images documentation of mPDF.
Feel free to add yours here:
Not all image format variations are successfully embedded in the PDF, even if they are properly displayed in DokuWiki. If you get missing images in your output, try stripping the Alpha channel of your (e.g. PNG) images.
If using full http links, make sure the permissions are set up for retrieving the image directly (test in a browser). DokuWiki may prevent outside access to images in the data/media directory.
To set fixed password for generated documents, edit:
dokuwiki/lib/plugins/dw2pdf/mpdf/config.php
(warning: each plugin update overwrites these changes)
and add following lines:
$this->setUserRights(); $this->SetProtection(array('print','copy', 'modify'),'password','password');
where password
is your password :)
(filips)
With the following setting in style.css
it is possible to enable automatic hyphenation:
body { hyphens: auto; }
The hyphenation is of course language dependent. Normally, the wiki login language is used. If the translation plugin is installed, the language selected here is used for hyphenation when creating the PDF.
Because the rendering is done on the server side, plugins that rely on the client side to render might not do so correctly in the generated PDF. Example: mermaid