DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:html2pdf

html2pdf plugin

Compatible with DokuWiki

No compatibility info given!

plugin Exports HTML to PDF.

Last updated on
2009-02-16
Provides
Action
Repository
Source

Similar to dw2pdf, pdfex

Tagged with !broken, export, pdf

Overview

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 52M size) so that you should not need to do any configuration to get it up and running as quickly as possible. I haven't thoroughly tested this point on many platforms yet, so any feedback is welcome.

Features
  • Uses the html2ps PHP library which is itself a wrapper around one of several backends. In this plugin, it uses, by default, the fpdf backend.
  • Handles different languages (it bundles the large, but relatively complete arialuni.ttf font).
  • Outputs graphics of reasonable quality.

Demo

Installation

Download and install the plugin using the Plugin Manager using the following url.

Warning! This is a large file (~36MB) and the plugin manager would not handle it for me (not sure where that's a DokuWiki setting or an Apache setting at this point in time). Alternatively, you can install it manually, just download and install into the doku/lib/plugins directory.

Insufficient Memory

The html2ps script is pretty greedy and you might not have enough memory reserved for the PHP script. When this happens, it will return with an error stating so. To increase the memory: Edit your php.ini file, set the memory_limit variable to 128K or more. Restart the web server.

Bad CSS

The html2pdf script doesn't know how to handle the !important CSS property so internal links do not get styled. If you want them to show up as they appear on the web page, go into your template and edit /lib/tpl/_template/design.css, looking for the a.wikilink# (where # is 1 or 2) pattern and edit out the !important pieces. Other css changes can be affected here also.

Blank PDF Output

Check that the html is being made in doku/lib/plugins/html2pdf/tmp/export_pdf.html. Check that the html2pdf is working with the systemcheck link in the troubleshooting section above. Especially check curl and ghostscript - you need php with curl use flag and ghostscript package installed. Make sure your entire directory is read/writeable by your web server user (usually apache:apache).

Large PDF File Size

Aye, thats normal. The holy grail of easily convertable documents isn't really here yet (though I've seen a project aiming to get there), but this is the best I've seen for faithfully rendering what you see in a dokuwiki page to pdf, even if it is pretty heavy getting there. I wouldn't use it for anything more than one or two page documents - but wiki pages should ideally never get longer than that if you're using the wiki as it should be used.

To use the plugin, you simply need to call the page passing it a “do=export_pdf” php argument. The easiest way to implement this is to add a button or similar somewhere in your template design.

Dokubook

I use an extended dokubook for this, and have the following code inserted into the top__nav unordered list in main.php:

$pdf_plugin = &plugin_load('action','html2pdf');
if ( $pdf_plugin ) {
  if ( !plugin_isdisabled($pdf_plugin->getPluginName() ) ) {
    print '<li>'.DOKU_LF;
    print '  <a href="';
      echo exportlink($ID, 'pdf');
      print '" class="action tab_pdf" rel="nofollow">Export Pdf</a>'.DOKU_LF;
    print '</li>'.DOKU_LF;
  }
}

The appropriate bit of CSS is added for tab_pdf in dokubook_design.css.

Monobook

When using the template “monobook for DokuWiki”, and using the “default toolbox”, you simply have to add two lines in context.php (line 355) of the template:

$monobook['defaulttoolbox']['pdf']['href'] = exportlink($ID, 'pdf');
$monobook['defaulttoolbox']['pdf']['text'] = 'Export PDF';

Issues and Requests

You can either use the forum above, or add below for any discussion about problems/requests you might have. Some of the old issues have been moved to the FAQ.

Use with the FCKG plugin

I'm using the fckg plugin with DokuWiki, which is far more rich in features than the regular wiki, and suits our needs (since we have to convert some word-like documents to DokuWiki).
So, would it be possible to somehow convert such a document (which includes, for example tables with colored cells, etc.) to PDF with html2pdf?

(since FCKG format is more similar to HTML than the DokuWiki syntax)

Thnx! - 2009/11/04

This package uses a library maintained by someone else which is just focusing on converting html to pdf.

Some Rendering Errors

I just installed the html2pdf Plugin. It's great an I like its performance. But I stumbled upon two Problems: First I wanted to export a gcalender produced by the gcalender Plugin, but it did not render the Pictures the PDF just showed the Text Second I was using an .htaccess to secure the Wiki. I got a lot of 401 errors as long I had this activated. Wen I deactivated it the Plugin just worked fine. My question is whether there are any workarounds to get rid of the two mentioned problems.

I haven't tried everything with the plugin, just the most common things. The guy who is writing the library has a monumental job - to faithfully render HTML+CSS is really difficult, even the browsers get it wrong. Still he's done a great job and is very active. I found a couple of problems when first starting to use the converter with just regular DokuWiki pages. However, if you simply scale the problem down to a simple example and hit the html2ps forum he's very quick on addressing them. He fixed the most glaring DokuWiki problems for me very quickly. That may be an approach you can take if you want the gcalender output rendered better.

The second problem, I'm a bit curious as to your setup. I'm using 2008 DokuWiki with Apache which has an AllowOverRide all setting for the DokuWiki directory. Other than that, I leave DokuWiki to handle the access (I think it uses one .htaccess file in the root folder - but I might be wrong about that, haven't checked in detail) and have no problems. Is the plugin directory owned by the web server?

Poor Graphics

I have installed the plugin html2pdf and when I tried it, the PDF-file that has been generated was good but not as far as those which are generated on the demo website.

I have maybe a file to modify, to configure the PDF export, but were is it? What can I put into it to have a good result as on the demo website?

Thanks!

Yohann – 2009-06-23

Run the systemcheck link (see the troubleshooting section above) and check everything is in working order. Is it primarily a fonts or graphics problem?

Too heavy

I see the interest to include the font, but the result is really too heavy; such files cannot even be sent by mail!
Pat – 2010-11-09

plugin/html2pdf.txt · Last modified: 2015-03-05 14:10 by snorri