perl-wkhtmltox / WKHTMLTOX::XS
Generate PDF and Images from HTML using WKHTMLTOX. e.g, for PDF
use WKHTMLTOX::XS qw( generate_pdf );
generate_pdf( {out => 'google.pdf'}, { page => 'http://www.google.com'} );
or for an image,
use WKHTMLTOX::XS qw( generate_image );
generate_image( {out => 'google.jpg', in => "http://www.google.com", fmt => "jpeg"} );
EXPORT
generate_pdf( global_pdf_settings, pdf_settings );
generate_image( image_settings )
DEPENDENCIES
qt
libwkhtmltox
libXext
libXredner
gcc-c++ (for building)
INSTALLATION
-
Install http://wkhtmltopdf.org/.
-
Install required dependencies
# yum install qt urw-fonts gcc-c++ libXext libXrender -
Install this module, e.g:
$ perl Makefile.PL $ make $ make test # make install
GLOBAL & OBJECT SETTINGS
For complete information regarding the global and object settings, please see: http://wkhtmltopdf.org/libwkhtmltox/pagesettings.html
PDF GLOBAL SETTINGS
size.paperSizeThe paper size of the output document, e.g. "A4".size.widthThe with of the output document, e.g. "4cm".size.heightThe height of the output document, e.g. "12in".orientationThe orientation of the output document, must be either "Landscape" or "Portrait".colorModeShould the output be printed in color or gray scale, must be either "Color" or "Grayscale"resolutionMost likely has no effect.dpiWhat dpi should we use when printing, e.g. "80".pageOffsetA number that is added to all page numbers when printing headers, footers and table of content.copiesHow many copies should we print?. e.g. "2".collateShould the copies be collated? Must be either "true" or "false".outlineShould a outline (table of content in the sidebar) be generated and put into the PDF? Must be either "true" or false".outlineDepthThe maximal depth of the outline, e.g. "4".dumpOutlineIf not set to the empty string a XML representation of the outline is dumped to this file.outThe path of the output file, if "-" output is sent to stdout, if empty the output is stored in a buffer.documentTitleThe title of the PDF document.useCompressionShould we use loss less compression when creating the pdf file? Must be either "true" or "false".margin.topSize of the top margin, e.g. "2cm"margin.bottomSize of the bottom margin, e.g. "2cm"margin.leftSize of the left margin, e.g. "2cm"margin.rightSize of the right margin, e.g. "2cm"imageDPIThe maximal DPI to use for images in the pdf document.imageQualityThe jpeg compression factor to use when producing the pdf document, e.g. "92".load.cookieJarPath of file used to load and store cookies.
PDF OBJECT SETTINGS
toc.useDottedLinesShould we use a dotted line when creating a table of content? Must be either "true" or "false".toc.captionTextThe caption to use when creating a table of content.toc.forwardLinksShould we create links from the table of content into the actual content? Must be either "true or "false.toc.backLinksShould we link back from the content to this table of content.toc.indentationThe indentation used for every table of content level, e.g. "2em".toc.fontScaleHow much should we scale down the font for every toc level? E.g. "0.8"pageThe URL or path of the web page to convert, if "-" input is read from stdin.header.*Header specific settings see Header and footer settings.footer.*Footer specific settings see Header and footer settings.useExternalLinksShould external links in the HTML document be converted into external pdf links? Must be either "true" or "false.useLocalLinksShould internal links in the HTML document be converted into pdf references? Must be either "true" or "false"replacementsTODOproduceFormsShould we turn HTML forms into PDF forms? Must be either "true" or file".load.*Page specific settings related to loading content, see Object Specific loading settings.web.*See Web page specific settings.includeInOutlineShould the sections from this document be included in the outline and table of content?pagesCountShould we count the pages of this document, in the counter used for TOC, headers and footers?tocXslIf not empty this object is a table of content object, "page" is ignored and this xsl style sheet is used to convert the outline XML into a table of content.
IMAGE OBJECT SETTINGS
crop.leftleft/x coordinate of the window to capture in pixels. E.g. "200"crop.toptop/y coordinate of the window to capture in pixels. E.g. "200"crop.widthWidth of the window to capture in pixels. E.g. "200"crop.heightHeight of the window to capture in pixels. E.g. "200"load.cookieJarPath of file used to load and store cookies.load.*Page specific settings related to loading content, see Object Specific loading settings.web.*See Web page specific settings.transparentWhen outputting a PNG or SVG, make the white background transparent. Must be either "true" or "false"inThe URL or path of the input file, if "-" stdin is used. E.g. "http://google.com"outThe path of the output file, if "-" stdout is used, if empty the content is stored to a internalBuffer.fmtThe output format to use, must be either "", "jpg", "png", "bmp" or "svg".screenWidthThe with of the screen used to render is pixels, e.g "800".smartWidthShould we expand the screenWidth if the content does not fit? must be either "true" or "false".qualityThe compression factor to use when outputting a JPEG image. E.g. "94".
TODO
- Improved testing & support
COPYRIGHT & LICENCE
Copyright (C) 2014 by Kurt Wagner
The library is licensed under the terms of the GNU Lesser General Public License 3.0. See http://www.gnu.org/licenses/lgpl-3.0.html.