【发布时间】:2021-10-25 12:14:28
【问题描述】:
我正在开发一个应该导出 PDF 的浏览器应用程序。此 PDF 必须具有用户定义的页眉和页脚。这些页眉和页脚作为字符串存储在数据库中,并通过 API 调用获取。
我为此使用 pdfmake 和 htmltopdfmake。我正在解析这些 HTML 字符串,如下所示:
exportReportToPDF (tableData, tableKeyMap, reportSettings, reportTitle) {
/* Style constants */
const blue = '#044e99'
const marginArray = [40, 5, 0, 10]
const documentDefinition = {}
const rawHTMLStyles = {
h1: {
fontSize: 16,
color: blue,
margin: marginArray
},
h2: {
fontSize: 14,
color: blue,
margin: marginArray
},
h3: {
fontSize: 12,
color: blue,
margin: marginArray
},
p: {
fontSize: 8,
margin: marginArray
},
hr: {
margin: [0, 0, 0, 0]
}
}
/* Generate header and footer */
if (reportSettings.header && reportSettings.footer) {
const header = htmlToPdfmake(reportSettings.header, {
defaultStyles: rawHTMLStyles,
imagesByReference: true
})
const footer = htmlToPdfmake(reportSettings.footer, {
defaultStyles: rawHTMLStyles,
imagesByReference: true
})
documentDefinition.header = header.content
documentDefinition.footer = footer.content
}
/* irrelevant code redacted */
pdfMake.createPdf(documentDefinition).open()
},
这不太好。如果我将此作为reportSettings 传递给函数,则标题显示不正确。 <h1> 出现,但 <h2> 没有出现。
{
"id": 1,
"title": "Prueba",
"header": "<h1>Lorem Ipsum Dolor Sit Amet</h1><h2>consectetur adipiscing elit</h2>",
"footer": "<p>Lorem ipsum 2021</p>",
"created": "2021-07-06T15:21:10.864259Z",
"updated": "2021-07-06T15:21:10.864358Z",
"creator": 1
}
我做错了什么?我应该如何使这个 HTML 呈现? 提前致谢!
【问题讨论】:
标签: javascript html pdf-generation pdfmake