Qt Webkit HTML Converter - PECL Extension (phpwkhtmltox)
The PECL extension phpwkhtmltox is a PHP module around the libwkhtmltox C library.
Prerequisite
Installing wkhtmltopdf is required, see install wkhtmltopdf for extended guidance.
Prepare
Download the source code from https://github.com/mreiferson/php-wkhtmltox:
bash$> wget https://github.com/mreiferson/php-wkhtmltox/archive/master.zip
bash$> unzip master.zip
bash$> cd php-wkhtmltox-master
Build & Install
Generate autoconf files:
bash$> phpize
Configure, build and install:
bash$> ./configure --with-phpwkhtmltox=/usr/local/wkhtmltopdf
bash$> make
bash$> make install
If you get an error when running make about the libtool generated by phpize being too old, try regenerate the autoconf files:
bash$> libtoolize
bash$> aclocal
bash$> autoconf
Run configure and make again.
Configuration
Fix permission on installed PECL extension:
bash$> chmod 644 /usr/lib64/php5.3/lib/extensions/no-debug-non-zts-20090626/phpwkhtmltox.so
Create extension configuration files (Gentoo specific):
bash$> echo "extension=phpwkhtmltox.so" > /etc/php/apache2-php5.3/ext/phpwkhtmltox.ini
bash$> echo "extension=phpwkhtmltox.so" > /etc/php/cli-php5.3/ext/phpwkhtmltox.ini
Enable extension:
bash$> ln -s /etc/php/apache2-php5.3/ext/phpwkhtmltox.ini /etc/php/apache2-php5.3/ext-active/phpwkhtmltox.ini
bash$> ln -s /etc/php/cli-php5.3/ext/phpwkhtmltox.ini /etc/php/cli-php5.3/ext-active/phpwkhtmltox.ini
Check that extension gets loaded:
bash$> php -m | grep phpwkhtmltox
phpwkhtmltox
bash$> php -i
...
phpwkhtmltox => enabled
version => 0.10.0_rc2
...
Test
Use the supplied PHP script for testing conversion of HTML to JPEG:
bash$> php test_image.php
bash$> ls -l /tmp/test.jpg
-rw-r--r-- 1 root root 51511 Apr 16 12:56 /tmp/test.jpg
Test convert HTML to PDF, takes a bit longer time than image generation:
bash$> php test_pdf.php
bash$> ls -l /tmp/test*.pdf
-rw-r--r-- 1 root root 56005 Apr 16 12:57 /tmp/test1.pdf
-rw-r--r-- 1 root root 56005 Apr 16 12:57 /tmp/test2.pdf
-rw-r--r-- 1 root root 56005 Apr 16 12:57 /tmp/test3.pdf
-rw-r--r-- 1 root root 56005 Apr 16 12:57 /tmp/test4.pdf
Troubleshoot
Make sure that php-wkhtmlx is using correct libraries:
bash$> ldd /usr/lib64/php5.3/lib/extensions/no-debug-non-zts-20090626/phpwkhtmltox.so
...
libwkhtmltox.so.0 => /usr/local/wkhtmltopdf/lib/libwkhtmltox.so.0 (0x00007fc2fc0f2000)
libc.so.6 => /lib64/libc.so.6 (0x00007fc2fbd36000)
libQtWebKit.so.4 => /usr/local/wkhtmltopdf/qt4/lib/libQtWebKit.so.4 (0x00007fc2f9f84000)
libQtSvg.so.4 => /usr/local/wkhtmltopdf/qt4/lib/libQtSvg.so.4 (0x00007fc2f9d21000)
libQtXmlPatterns.so.4 => /usr/local/wkhtmltopdf/qt4/lib/libQtXmlPatterns.so.4 (0x00007fc2f967d000)
libQtGui.so.4 => /usr/local/wkhtmltopdf/qt4/lib/libQtGui.so.4 (0x00007fc2f8898000)
libQtNetwork.so.4 => /usr/local/wkhtmltopdf/qt4/lib/libQtNetwork.so.4 (0x00007fc2f851d000)
libQtCore.so.4 => /usr/local/wkhtmltopdf/qt4/lib/libQtCore.so.4 (0x00007fc2f7fe7000)
...
|