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

时间:2016-10-04 07:06:10

标签: html wkhtmltopdf

我有两个问题:

  1. this old manual我找到了一些有用的toc选项,例如$arrayMultiIndex = [ [ 'className' => [ 'attribute' => [ 'name' => 'Aabir Hussain', 'phone' => 955585, 'email' => 'aabir@gmail.com', 'create_on' => '12-10-2016 12:12:12', 'status' => 'Active' ], 'validationMessage' => [ 'name' => 'no_error', 'phone' => 'no_error', 'email' => 'Email Already Taken, Please Choose Another One', 'create_on' => 'no_error', 'status' => 'no_error' ], 'scenario' => 'create', ] ] ]; $arrayMultiIndexObject = arrayToObjectNew($arrayMultiIndex); function arrayToObject($d) { if (is_array($d)) { /* * Return array converted to object * Using FUNCTION (Magic constant) * for recursive call */ return (object) array_map(__FUNCTION__, $d); } else { // Return object return $d; } } function arrayToObjectNew($array) { if (!is_array($array)) { return $array; } if (is_array($array) && count($array) > 0) { foreach ($array as $name=>$value) { $object = new stdClass(); if(is_numeric($name)) $name = (string) $name; $name = strtolower(trim($name)); // if (!empty($name)) { $object->$name = arrayToObject($value); // } } return $object; } else { return FALSE; } } echo '<pre>'; print_r($arrayMultiIndexObject->{0}); die; --toc-depth。它似乎在最新的wkhtmltopdf版本中不可用 - 所以我现在如何设置toc-depth和toc-font-size?

  2. 我希望我的每个子章节(toc-level 2)都在新页面上开始:

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

1 个答案:

答案 0 :(得分:5)

ToC定制

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

  

内容表是通过XSLT生成的,这意味着它可以     无论你希望它看起来如何设计。要获得如何做到这一点的助手     您可以通过提供--dump-default-toc-xsl转储默认的xslt文档,并提供--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
     

--dump-default-toc-xsl开关可用于转储默认的XSLT样式     表格到标准输出。这是编写自己的样式表的良好开端

我做了什么来隐藏ToC的特定级别。我编辑了XSLT文件,将CSS类添加到<li>(默认XSLT中的第40行)和<ul>(第55行)元素。在该班级名称I counted the ancestor nodes中获得&#34;级别&#34;物品的深度。

<li class="level-{count(ancestor::*) - 1}">
<ul class="level-{count(ancestor::*) - 1}">

然后我添加了一些在<style>内添加<head>的CSS规则:

.level-2, .level-3, .level-4 {
    display: none;
}

子章节的分页符

您可以在之前的HTML 中放置<div style="page-break-after: always"></div>子页面,以强制它们出现在新页面上。