Javascript draft.js,html2canvas RangeError:NaN不是有效的代码点
我正在React项目中使用(它使用html2canvas库)。 我需要将编辑器的内容导出为pdf,我使用以下代码:Javascript draft.js,html2canvas RangeError:NaN不是有效的代码点,javascript,reactjs,html2canvas,draftjs,html2pdf,Javascript,Reactjs,Html2canvas,Draftjs,Html2pdf,我正在React项目中使用(它使用html2canvas库)。 我需要将编辑器的内容导出为pdf,我使用以下代码: const el = document.getElementById('element-to-print'); const opt = { margin: 1, filename: 'myfile.pdf', pagebreak: { mode: ['avoid-all']}, image:
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();
const el=document.getElementById('element-to-print');
常数opt={
差额:1,
文件名:“myfile.pdf”,
分页中断:{mode:['avoid-all']},
图像:{type:'jpeg',质量:1},
html2canvas:{比例:1},
jsPDF:{单位:'in',格式:'a4',方向:'RATIATE'}
};
html2pdf().from(el).set(opt).toPdf().get('pdf')。然后(函数(pdf){
var totalPages=pdf.internal.getNumberOfPages();
对于(var i=1;i(忘了早点发布解决方案,但希望有人发现这很有帮助)
我没有设法解决问题,但此旁路运行良好:
const el = document.getElementById('element-to-print');
// Replace ordered lists with placeholders to avoid html2canvas counter-reset bug
el.querySelectorAll('ol').forEach(ol => {
ol.querySelectorAll('li').forEach((li, i) => {
li.style.counterReset = 'none';
li.classList.add('pdf-print-li');
li.setAttribute('data-counter', `${i + 1}. `);
});
});
const opt = {
margin: 1,
filename: `${meetingTitle}.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) {
// Return ordered lists to previous state
el.querySelectorAll('ol').forEach(ol => {
ol.querySelectorAll('li').forEach((li, i) => {
li.style.counterReset = null;
li.classList.remove('pdf-print-li');
li.removeAttribute('data-counter');
});
});
};
您的代码按预期工作。可能是您不小心从示例中删除了导致问题的代码?