分享

Qt Webkit HTML Converter【Qt Webkit HTML Converter - PECL Extension (phpwkhtmltox)】

 JhouShuai 2017-03-07

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)
      ...

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多