如何更改wkhtmltopdf输出中的TOC位置?

如何更改wkhtmltopdf输出中的TOC位置?

问题描述:

我需要TOC在第3页上。显然,如果有办法控制这个,它必须通过XSL样式表。我所有的搜索尝试都没有给我提供线索。它有可能吗?如何更改wkhtmltopdf输出中的TOC位置?

我不能使用cover选项,因为我需要在第一和第二页上显示标题。

好的我找到了使用wkhtmltopdf 0.11的方法。我提取的前两页到一个独立的HTML文件,然后运行它像这样

wkhtmltopdf [options] page cover.html toc --xsl-style-sheet ... input_file.html out.pdf 

不幸的是,花了比我预想的多得多的努力,因为我用它在Rails应用程序通过wicked_pdf,并且它对新的选项格式不太好,所以我不得不分叉它并进行必要的更改。

通过wicked_pdf生成的命令行看起来是这样的(略长路径):在“......”你有你的网页提取

"c:/program files (x86)/wkhtmltopdf/wkhtmltopdf.exe" 
    --header-html "file:///path/to/header" --footer-html "file:///path/to/footer" 
    --margin-top 20 --margin-bottom 15 --margin-left 5 --margin-right 40 page "file:///path/to/cover/page" --disable-javascript toc --xsl-style-sheet "path/to/style/sheet" - - 
+0

这是否意味着?是否有可能看到使用的实际命令? “page”指令对我来说并不熟悉。对我来说,就像“把页面cover.html,然后toc,然后input_file.html和打印out.pdf”,但我怀疑它不是这样吗?好的问题,并很好地找到了答案 – Nenotlep 2012-07-20 10:55:43

+1

我相信这个'页面'和'toc'对象的符号是在v0.10附近引入的。 wkhtmltopdf将这些对象按命令行中给出的顺序放入输出中。 ......实际上是XSL工作表的路径,抱歉没有明确说明。我添加了wicked_pdf在我的应用程序中生成的CLI。 – HargrimmTheBleak 2012-07-20 11:53:57

+0

说简单,你可以有多个* page *对象以及* cover *和* toc *对象。我使用了相同的技巧=而不是使用* cover *,这很难设置页眉/页脚,我使用单页作为封面,然后是toc,然后是我的文档的其余部分,所以'[page] [toc] [page]'vs'[cover] [toc] [page]' – frequent 2016-02-22 15:39:56