新页面上的ToC 2级样式和ToC选项

Mun*_*kin 1 html wkhtmltopdf

我有两个问题:

  1. 这本旧手册上,我找到了一些有用的toc选项,例如--toc-depth--toc-l1-font-size。似乎它们在最新的wkhtmltopdf版本中不可用-那么现在如何设置toc-depth和toc-font-size?

  2. 我希望每个子章节(目录级别2)都在新页面上开始:

    • 当我创建一个巨大的.html文件时,toc是正确的(子章节显示为level-2),但是该子章节没有在新页面上开始。
    • 当我改为创建多个.html文件(每个子章节一个)时,我的子章节确实在新页面上开始,但是它们都显示为toc level-1。

lor*_*o-s 5

ToC定制

在当前版本中,您可以使用XSLT文件来自定义所生成的ToC的任何样式。以下是文档中的相关报价:

目录是通过XSLT生成的,这意味着可以对其进行样式设置以使其具有外观,而您却希望它具有外观。要获得如何执行此操作的帮助,可以通过提供来转储默认的xslt文档--dump-default-toc-xsl,并通过提供来转储其轮廓--dump-outline

可以使用--xsl-style-sheet开关指定XSLT文档。例如:

wkhtmltopdf toc --xsl-style-sheet my.xsl http://qt-project.org/doc/qt-4.8/qstring.html qstring.pdf
Run Code Online (Sandbox Code Playgroud)

--dump-default-toc-xsl开关可用于将默认的XSLT样式表转储到stdout。这是编写自己的样式表的良好起点

这就是我在ToC中隐藏特定级别的方法。我编辑了XSLT文件,将CSS类添加到<li>(默认XSLT中的第40行)和<ul>(第55行)元素。在该类名称中,我计算了祖先节点以获取项目深度的“级别”。

<li class="level-{count(ancestor::*) - 1}">
<ul class="level-{count(ancestor::*) - 1}">
Run Code Online (Sandbox Code Playgroud)

然后我<style>在里面添加了一些CSS规则<head>

.level-2, .level-3, .level-4 {
    display: none;
}
Run Code Online (Sandbox Code Playgroud)

子章节的分页符

您可以<div style="page-break-after: always"></div>在子章节之前将HTML 放入HTML中以将其强制放在新页面上。

  • 否。“-outline-depth 2”在Acrobat Reader的书签中仅打印2级,但TOC页面仍显示3级。 (2认同)