我正在尝试导出django_plotly_dash Jmeter 板到pdf,但无法得到它。当我点击按钮触发导出时,控制台中出现以下错误:
ReferenceError: html2pdf is not defined
at Object.nClicksToPDF [as n_clicks]
这是告诉我,html 2 pdf无法找到。我已经尝试导入资产文件夹以及cdn直接在应用程序布局,但似乎没有做的伎俩,我的东西尝试:
下面是我如何将其导入应用程序:
html.Script(src="https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.10.1/html2pdf.bundle.min.js"),
下面是我的回调,它被称为:
app.clientside_callback(
"""
function nClicksToPDF(n_clicks){
if(n_clicks > 0){
document.querySelector('.chkremove').style.display = 'none';
const opt = {
margin: 2,
filename: 'myfile.pdf',
image: { type: 'jpeg', quality: 0.98 },
html2canvas: { scale: 1},
jsPDF: { unit: 'cm', format: 'a2', orientation: 'p' },
pagebreak: { mode: ['avoid-all'] }
};
console.log('ok')
html2pdf().from(document.getElementById("print")).set(opt).save();
setTimeout(function(){
document.querySelector('.chkremove').style.display = 'block';
}, 2000);
}
}
""",
Output('js','n_clicks'),
Input('js','n_clicks')
)
不知道还能做什么,任何帮助都是非常受欢迎的!
1条答案
按热度按时间pbossiut1#
问题来自
html.Script
组件,该组件的工作方式与预期不同:简而言之,创建了<script>
标签,但从未执行该标签。这是一个更大问题的一部分:Several components have limited or no functionality in current browsers:
[...]浏览器不会像react那样执行
<script>
(通过innerHTML)。在文档中包含html.Script
只会让人们走进死胡同。要么它应该使用不同的插入机制,要么它应该在文档中有一个醒目的警告,要么它应该被完全删除。另一种方法是将html2pdf添加为外部脚本,即: