1. 背景

前端直接根据 html 生成 pdf, 减轻后端压力

3. 坑点

**打印位置偏移hack 滚动条 X Y 轴 打印前需要置零**

handleDownloadPDF() {

let scrollTop = document.documentElement.scrollTop

let scrollLeft = document.documentElement.scrollLeft

this.tableOptions.loading = true

API

.xxxxx()

.then((res) => {

document.documentElement.scrollTop = 0

document.documentElement.scrollLeft = 0

this.$refs.html2Pdf.generatePdf()

})

.finally(() => {

document.documentElement.scrollTop = scrollTop

document.documentElement.scrollLeft = scrollLeft

this.tableOptions.loading = false

})

},

分页 --  通过 css 控制分页位置

.page-break-after {

page-break-after: always;

}

打印宽度 pdf-content-width="'98%'"

v-show="!printState"

ref="html2Pdf"

:enable-download="true"

:filename="fileName"

:float-layout="false"

:html-to-pdf-options="pdfOptions"

:manual-pagination="true"

:paginate-elements-by-height="1400"

:pdf-content-width="'98%'"

:pdf-quality="2"

:preview-modal="false"

:show-layout="false"

pdf-format="a4"

pdf-orientation="landscape"

>

computed: {

fileName() {

return `xxxx`

},

pdfOptions() {

return {

margin: [0, 5, 0, 5],

filename: this.fileName

}

},

},

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐