Print: 1. Installation

Last modified: June 6, 2009 - 00:35

Installation

Decompress the print-n.x-n.n.tar.gz file into your Drupal modules directory (usually sites/all/modules, see Installing Modules for more information).

Enable the print module: Administer > Site building > Modules
(admin/build/modules)

PDF Tool

The print_pdf module requires the use of an external PDF generation tool.
The currently supported tools are wkhtmltopdf, dompdf and TCPDF. Please note that any errors/bugs in those tools need to be reported and fixed by their maintainers. DO NOT report bugs in those tools in the print module's issue queue at Drupal.org.

dompdf support:

The dompdf tool produces results that are more faithful to the HTML printer-friendly page.

  1. Download dompdf from http://code.google.com/p/dompdf/downloads/list
  2. Extract the contents of the downloaded package into the print module directory (usually sites/all/modules/print)
  3. Check if dompdf_config.inc.php fits your installation. In 99% of cases, no changes are necessary, so just try to use it and only edit anything if the PDF generation fails.
  4. Grant write access to the lib/fonts directory to your webserver user.
  5. If you're using dompdf-0.5.1, delete the dompdf.php file as it contains a security vulnerability
  6. Check http://code.google.com/p/dompdf/ for further information.

TCPDF support:

TCPDF seems to be more actively developed than dompdf, but it's support for CSS is considerably worse.

  1. Download TCPDF from http://sourceforge.net/projects/tcpdf/
  2. Extract the contents of the downloaded package into the print module directory (usually sites/all/modules/print). There is no need to modify the config/tcpdf_config.php file, as the module self-configures TCPDF.
  3. Check http://tcpdf.sourceforge.net/ for further information.

wkhtmltopdf support:

wkhtmltopdf launches a browser to generate the PDF, so the output is completely faithful to the contents of the page. However, it requires a LOT more memory and processing power, and you may need to compile/install it in your system to use it.

  1. Download wkhtmltopdf from http://code.google.com/p/wkhtmltopdf/downloads/list. You can choose to download the source and compile it or simply download the static binary, which doesn't require you to complile anything.
  2. Place the wkhtmltopdf executable into the print module directory (usually sites/all/modules/print/lib). You can also place a symbolic link to the executable.
  3. You will need a running X Server or the virtual (headless) X framebuffer server: Xvfb. Place the Xvfb binary or a symbolic link to it in the print module directory (usually sites/all/modules/print/lib).
  4. Check http://code.google.com/p/wkhtmltopdf/ for further information.

Updating

When updating from a previous version, just remove the print directory and follow the instructions above. Make sure that you backup any costumization to the print.tpl.php and print.css files.

Robots

Even though it is possible to set per-page robots settings, the following can be placed in your robots.txt file after the User-agent line to prevent search engines from even asking for the page:

Disallow: /print/

Also, for updates from older versions (<=4.7.x-1.0 and <=5.x-1.2) which used node/nnn/print instead of print/nnn, the following lines can prevent requests from Google for the obsolete print URLs:

Disallow: /*/print$

Note that pattern matching in robots.txt is a Google extension (see http://www.google.com/support/webmasters/bin/answer.py?answer=40367 for more information).

X-Server and wkhtmltopdf

Fleshgrinder - August 12, 2009 - 22:04

You don't need a running X-Server if you are using the static packages from wkhtmltopdf. A short description how I made it on my Debian system:

$ cd /usr/src
$ wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.8.3-static.tar.bz2
$ tar xvjf wkhtmltopdf-0.8.3-static.tar.bz2
$ rm wkhtmltopdf-0.8.3-static.tar.bz2
$ mv wkhtmltopdf /usr/bin/wkhtmltopdf
$ cd /var/www/http/sites/all/modules/print/lib
$ ln -s wkhtmltopdf /usr/bin/wkhtmltopdf

Then go to /admin/settings/print/pdf and you should see "sites/all/modules/print/lib/wkhtmltopdf" on the right hand side of a radio button. Activate it and save, go to a page and hit the PDF link. On my system this worked flawlessly without any X-Server.

Kindest regards
Fleshgrinder

Symbolic link command is wrong

George_OConnor - August 26, 2009 - 22:23

I believe the symbolic link command is backwards. It should be:

ln -s /usr/bin/wkhtmltopdf wkhtmltopdf

 
 

Drupal is a registered trademark of Dries Buytaert.