我在我的React项目中使用html2pdf.js(使用html2canvas库)。我需要将draft.js编辑器的内容导出为pdf,我正在使用以下代码:
const el = document.getElementById('element-to-print');
const opt = {
margin: 1,
filename: 'myfile.pdf',
pagebreak: { mode: ['avoid-all']},
image: { type: 'jpeg', quality: 1 },
html2canvas: { scale: 1},
jsPDF: { unit: 'in', format: 'a4', orientation: 'portrait' }
};
html2pdf().from(el).set(opt).toPdf().get('pdf').then(function (pdf) {
var totalPages = pdf.internal.getNumberOfPages();
for (var i = 1; i <= totalPages; i++) {
pdf.setPage(i);
pdf.setFontSize(10);
pdf.setTextColor(150);
pdf.text('Page ' + i + ' of ' + totalPages, 1, pdf.internal.pageSize.getHeight() - 0.3);
}
}).save();
这通常有效,仅当编辑器包含具有多个项目的有序列表时,才会出现问题,在这种情况下,应用程序在导出时冻结(需要刷新以重新开始工作),并且在安慰。似乎是因为在某些时候,html2canvas中的RangeError: NaN is not a valid code point
函数接收到NaN值,但我不知道它的来源。
有人可以帮我吗?
谢谢你。
((忘记提早发布解决方案,但希望有人认为这会有所帮助)我没有设法解决问题,但是这种绕过效果很好:
fromCodePoint