使用 ng2-pdf-viewer 显示轮廓,其中使用 pdfmake 库生成pdf。在定义文档定义时,是否可以选择将某些文本作为轮廓文本放入pdfmake中?
答案 0 :(得分:0)
我们知道需要概述的标题。为此功能全部实现的解决方案是使用Toc(目录)
像这样定义文档定义:
generatePDF(): Promise<any>{
this.documentDefinition = {
content: [
{
tocItem: 'coverpage',
stack: [
{
columns: [
{
text: '',
width: '50%',
tocItem: true,
},
{
width: '*',
text: ''
}
]
}
]
pageBreak: 'after',
},
{
text: 'Second toc header',
tocItem: true,
pageBreak: 'after',
bold: true,
}
]
}
// generate
this.generatedPDF = pdfMake.createPdf(this.documentDefinition)
this.generatedPDF.getBuffer((buffer) => {
this.pdfSrc = buffer
})
}
在加载ng2-pdf-viewer后使用:
afterLoadComplete(pdf: PDFDocumentProxy): void {
this.pdf = pdf
const toc = this.generatedPDF.docDefinition.content.filter( content =>
content.toc)
this.loadOutline(toc)
}
loadOutline(toc: any): void {
const outlineTitles = [
'item 1',
'item 2',
'item 3',
'item 4'
]
this.pdf.getDestinations().then((outline: any[]) => {
this.outline = Object.entries(outline).map( (item, index) =>
Object.assign(item, {title : outlineTitles[index]}))
})
}
因此将获得带有目的地的标题。