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"} );
generate_pdf( global_pdf_settings, pdf_settings );
generate_image( image_settings )
qt
libwkhtmltox
libXext
libXredner
gcc-c++ (for building)
-
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
For complete information regarding the global and object settings, please see: http://wkhtmltopdf.org/libwkhtmltox/pagesettings.html
size.paperSize
The paper size of the output document, e.g. "A4".size.width
The with of the output document, e.g. "4cm".size.height
The height of the output document, e.g. "12in".orientation
The orientation of the output document, must be either "Landscape" or "Portrait".colorMode
Should the output be printed in color or gray scale, must be either "Color" or "Grayscale"resolution
Most likely has no effect.dpi
What dpi should we use when printing, e.g. "80".pageOffset
A number that is added to all page numbers when printing headers, footers and table of content.copies
How many copies should we print?. e.g. "2".collate
Should the copies be collated? Must be either "true" or "false".outline
Should a outline (table of content in the sidebar) be generated and put into the PDF? Must be either "true" or false".outlineDepth
The maximal depth of the outline, e.g. "4".dumpOutline
If not set to the empty string a XML representation of the outline is dumped to this file.out
The path of the output file, if "-" output is sent to stdout, if empty the output is stored in a buffer.documentTitle
The title of the PDF document.useCompression
Should we use loss less compression when creating the pdf file? Must be either "true" or "false".margin.top
Size of the top margin, e.g. "2cm"margin.bottom
Size of the bottom margin, e.g. "2cm"margin.left
Size of the left margin, e.g. "2cm"margin.right
Size of the right margin, e.g. "2cm"imageDPI
The maximal DPI to use for images in the pdf document.imageQuality
The jpeg compression factor to use when producing the pdf document, e.g. "92".load.cookieJar
Path of file used to load and store cookies.
toc.useDottedLines
Should we use a dotted line when creating a table of content? Must be either "true" or "false".toc.captionText
The caption to use when creating a table of content.toc.forwardLinks
Should we create links from the table of content into the actual content? Must be either "true or "false.toc.backLinks
Should we link back from the content to this table of content.toc.indentation
The indentation used for every table of content level, e.g. "2em".toc.fontScale
How much should we scale down the font for every toc level? E.g. "0.8"page
The 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.useExternalLinks
Should external links in the HTML document be converted into external pdf links? Must be either "true" or "false.useLocalLinks
Should internal links in the HTML document be converted into pdf references? Must be either "true" or "false"replacements
TODOproduceForms
Should 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.includeInOutline
Should the sections from this document be included in the outline and table of content?pagesCount
Should we count the pages of this document, in the counter used for TOC, headers and footers?tocXsl
If 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.
crop.left
left/x coordinate of the window to capture in pixels. E.g. "200"crop.top
top/y coordinate of the window to capture in pixels. E.g. "200"crop.width
Width of the window to capture in pixels. E.g. "200"crop.height
Height of the window to capture in pixels. E.g. "200"load.cookieJar
Path 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.transparent
When outputting a PNG or SVG, make the white background transparent. Must be either "true" or "false"in
The URL or path of the input file, if "-" stdin is used. E.g. "http://google.com"out
The path of the output file, if "-" stdout is used, if empty the content is stored to a internalBuffer.fmt
The output format to use, must be either "", "jpg", "png", "bmp" or "svg".screenWidth
The with of the screen used to render is pixels, e.g "800".smartWidth
Should we expand the screenWidth if the content does not fit? must be either "true" or "false".quality
The compression factor to use when outputting a JPEG image. E.g. "94".
- Improved testing & support
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.