2016-04-12 22 views
3

pdfmakeを使って目次(TOC)を作ることはできますか?ライブラリは私のためにPDFを生成しますが、どのオブジェクトがレンダリングされるかはわかりません。もちろん、これはページのサイズ、向きなどによって異なります。一部のコンテンツは次のページに流れます。チャプターが終わるところを事前に計算する方法はわかりません。pdfmakeを使って目次を作る方法は?

この文書の定義を考えてみましょう:

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オブジェクトを貼り付けることです:TOCを作成する方法についてhttp://pdfmake.org/playground.html

任意のアイデア?

答えて

2

これは最近までサポートされなかったが、あなたが今

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


は、私は上記のToC例がある限り、その場合において機能的であることを確認することができます少なくとも1つはtocItemです。ゼロtocItemtocは現在、空のToCテーブルのために例外をスローします。

関連する問題