gpt4 book ai didi

javascript - 如何使用 pdfmake 制作目录?

转载 作者:搜寻专家 更新时间:2023-11-01 04:14:47 24 4
gpt4 key购买 nike

是否可以使用 pdfmake 制作目录 (TOC)?该库将为我生成 PDF,但我不知道某个对象将在哪个页面上呈现。当然这取决于页面大小、方向等。有些内容会流到下一页。我看不出如何提前计算章节结束的位置。

考虑这个文档定义:

var dd = {
footer: function(currentPage, pageCount) { return currentPage.toString() + ' of ' + pageCount; },
content: [
'Table of contents\n\n',
'Chapter 1 ....... ?',
'Chapter 2 ....... ?',
'Chapter 3 ....... ?',
'Chapter 4 ....... ?',
{
text: '',
pageBreak: 'after'
},
{
text: 'Chapter 1: is on page 2',
pageBreak: 'after'
},
{
stack: [
'Chapter 2: is on page 3\n',
'A LOT OF ROWS 2\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n',
'A LOT OF ROWS 2\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n',
'A LOT OF ROWS 2\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n',
'A LOT OF ROWS 2\nWill go to the next page if this line contains a lot of text. Will go to the next page if this line contains a lot of text. Will go to the next page if this line contains a lot of text.'
],
pageBreak: 'after'
},
{
text: 'chapter 3: is on page 5',
pageBreak: 'after'
},
{
text: 'chapter 4: is on page 6'
},
]
}

最容易测试的是将这个 dd 对象粘贴到 Playground 上:http://pdfmake.org/playground.html

关于如何创建目录有什么想法吗?

最佳答案

虽然直到最近才支持,但您现在可以这样做了

var docDefinition = {
content: [
{
toc: {
// id: 'mainToc' // optional
title: {text: 'INDEX', style: 'header'}
}
},
{
text: 'This is a header',
style: 'header',
tocItem: true, // or tocItem: 'mainToc' if is used id in toc
// or tocItem: ['mainToc', 'subToc'] for multiple tocs
}
]
}

来源:https://github.com/bpampuch/pdfmake#table-of-contents


请注意,最近的 0.1.28 版本中还没有这个功能。但我想它将包含在下一个中,同时您可以轻松地从源代码构建:

git clone https://github.com/bpampuch/pdfmake.git
cd pdfmake
npm install # or: yarn
git submodule update --init libs/FileSaver.js
npm run build # or: yarn run build

来源:https://github.com/bpampuch/pdfmake#building-from-sources


只要您至少有一个tocItem,我就可以确认上面的 ToC 示例在那种情况下是有效的。零个 tocItem 和一个 toc 当前将由于空的 ToC 表而抛出异常。

关于javascript - 如何使用 pdfmake 制作目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36578043/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com