使用wkhtmltopdf时如何设置内容表的位置

时间:2011-05-09 22:42:43

标签: pdf-generation wkhtmltopdf

我正在使用wkhtmltopdf从html页面生成pdf。

我的问题是如何设置内容列表页面的位置?它似乎是在第一页开头自动生成的。另外,如何设置内容内容的CSS

2 个答案:

答案 0 :(得分:6)

wkhtmltopdf有一个--xsl-style-sheet (file)参数,因此在扩展命令行中详细说明--help(或-H)。

A table of content can be added to the document by adding a toc object to
the command line. For example:  

  wkhtmltopdf toc http://doc.trolltech.com/4.6/qstring.html qstring.pdf

The table of content is generated based on the H tags in the input
documents. First a XML document is generated, then it is converted to
HTML using XSLT.

The generated XML document can be viewed by dumping it to a file using
the --dump-outline switch. For example:

  wkhtmltopdf --dump-outline toc.xml http://doc.trolltech.com/4.6/qstring.html qstring.pdf

The XSLT document can be specified using the --xsl-style-sheet switch.
For example:

  wkhtmltopdf toc --xsl-style-sheet my.xsl http://doc.trolltech.com/4.6/qstring.html qstring.pdf

The --dump-default-toc-xsl switch can be used to dump the default
XSLT style sheet to stdout. This is a good start for writing your
own style sheet

  wkhtmltopdf --dump-default-toc-xsl

The XML document is in the namespace 
  http://code.google.com/p/wkhtmltopdf/outline

it has a root node called "outline" which contains a number of
"item" nodes. An item can contain any number of item. These are the
outline subsections to the section the item represents. A item node
has the following attributes:

 - "title" the name of the section
 - "page" the page number the section occurs on
 - "link" a URL that links to the section.
 - "backLink" the name of the anchor the the section will link back to.

The remaining TOC options only affect the default style sheet
so they will not work when specifying a custom style sheet.

因此,您可能会根据其默认值定义自己的XSLT,并将其传入。没问题。

答案 1 :(得分:3)

如果您愿意,您甚至可以使用html文件制作自定义TOC。例如。;如果你想在将要用于PDF创建的html文件名的名称上创建TOC(请注意,为此你应该事先知道名字)然后你可以通过传递一个HTML文件来说{{1} }。在此文件中,您可以放置​​所有标题/ css等,并为文件名创建占位符。需要使用服务器端代码解析此文件,该代码应填充占位符中的文件名。现在修改后的文件可用于TOC。

Perl中的示例代码:

user_toc.html

此外,你可以在TOC中添加很多其他信息,如章节no /总页面等。

希望这有帮助。