【发布时间】:2019-11-14 08:58:09
【问题描述】:
我正在寻找将我的 HTML div 导出为 PDF 格式的方法。我目前的领导是使用window.print() 发送要打印的页面,使目标“另存为 PDF”,然后从那里继续。这并不完美,我在这里询问是否可以编写代码来自动化用户单击“另存为 PDF”的部分以及他们在那里命名文件的部分。
理想情况下,发生的所有事情都是用户单击要导出的按钮,“另存为 PDF”单击发生在幕后,文件自动命名为 report.pdf。这可以编码吗?
我也愿意接受有关将我的 HTML 导出为 PDF 格式的其他方法的任何建议,但是我不能使用以下任一库来帮助我:
-
jsPDF本身不支持 CSS,因此不可能。 - 我知道 jsPDF 可以与
rasterizeHTML或html2canvas结合使用,但是这两者都是通过截取页面并将所述截屏附加到文件中来实现的。这意味着使用CTRL+F无法搜索该页面,这是我项目的用例之一。
我的另一个选择是使用Xportability 库,但到目前为止,我还无法将任何样式表传递给 PDF 生成调用。这是生成包含我所有记录数据的 PDF 的错误代码,但没有使用提供的 CSS 设置样式:
<script id="finalReport" type="text/x-kendo-template">
<h3 class="report-header">stub title</h3>
<table class="report-table">
<tr>
<td>Report ID:</td>
<td>stub</td>
</tr>
</table>
</script>
<style>
.report-header {
font-style: italic;
font-weight: bold;
text-align: left;
}
</style>
<script id="main" type="text/javascript">
function generateReport() {
return xepOnline.Formatter.Format("finalReport", {
render: 'download', pageWidth: '216mm', pageHeight: '279mm'
});
}
</script>
如何传入样式表?我可以手动将样式添加到每个元素,它的工作原理就是这样,但这太糟糕了。
【问题讨论】:
-
您从哪里得到这样的印象,即“jsPDF 本身不支持 CSS,因此不可能。”?
-
几乎所有关于 jsPDF 的 StackOverflow 帖子stackoverflow.com/questions/25946275/…
标签: javascript google-chrome pdf kendo-ui export