Javascript 从views.py访问pdf文件,该文件由Js在Django项目中创建
我正在尝试在我的Javascript 从views.py访问pdf文件,该文件由Js在Django项目中创建,javascript,html,django,pdf,Javascript,Html,Django,Pdf,我正在尝试在我的Django项目中使用HTML呈现为pdf。我正在使用包表单js,并通过以下链接将我的html呈现为pdf: 我的模板: <div class="container-fluid py-5 bg-light"> <div class="col-xl-10 bg-white" id="pdf_portion"> <p>Lots of staff is in this div.
Django
项目中使用HTML
呈现为pdf。我正在使用包表单js,并通过以下链接将我的html
呈现为pdf:
我的模板:
<div class="container-fluid py-5 bg-light">
<div class="col-xl-10 bg-white" id="pdf_portion">
<p>Lots of staff is in this div. I just skip those unnecessary things in this question.</p>
</div>
</div>
<button class="btn btn-primary" id="download"> download pdf</button>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.9.2/html2pdf.bundle.js"></script>
<script type="text/javascript">
window.onload = function () {
document.getElementById("download")
.addEventListener("click", () => {
const invoice = this.document.getElementById("pdf_portion");
console.log(invoice);
console.log(window);
var opt = {
margin: 0.8,
filename: 'myfile.pdf',
image: { type: 'jpeg', quality: 0.98 },
html2canvas: { scale: 4 },
jsPDF: { unit: 'in', format: 'A4', orientation: 'portrait' }
};
html2pdf().from(invoice).set(opt).save();
})
}
</script>
这个部门有很多员工。我只是跳过了这个问题中那些不必要的东西
下载pdf
window.onload=函数(){
document.getElementById(“下载”)
.addEventListener(“单击”,()=>{
const invoice=this.document.getElementById(“pdf_部分”);
控制台日志(发票);
控制台日志(窗口);
变量opt={
利润率:0.8,
文件名:“myfile.pdf”,
图像:{type:'jpeg',质量:0.98},
html2canvas:{比例:4},
jsPDF:{单位:'in',格式:'A4',方向:'RATIATE'}
};
html2pdf().from(invoice).set(opt).save();
})
}
这里的“下载”按钮为我们提供了下载pdf的选项。我需要以任何方式在我的views.py
中发送pdf,这样我就能将它保存在数据库的文件字段中
请建议如何在我的views.py中访问该pdf文件。html2pdf软件包具有处理生成的pdf的功能,而不是直接下载它们。它的outputPdf函数将所需的数据格式作为输入并返回输出
当前支持的数据格式有:
- 阵列缓冲器
- 斑点
- 布洛布里
- 数据字符串
- 数据URI
它可以按如下方式使用:
const elem = document.getElementById('html'); //element whose pdf is to be made
html2pdf().from(elem).outputPdf('arraybuffer').then((result) => {
// write your desired code here for sendin results to django views
});
现在,为了将这些数据发送到后端,您可以在这个函数中简单地使用AJAX post请求。我对AJAX不太熟悉。你能给我推荐一下AJAX post请求吗?如果你熟悉javascript,博客可以帮助你开始使用AJAX向django后端发送数据。