如何在 vue 3 js 中使用 html2 pdf 从 html 制作 pdf 文件?

How to make a pdf file out of html using html2pdf in vue3js?

我正在尝试使用 html2pdf 将我的 html 转换为 .pdf。 当它是一个简单的文件组件时,我没有任何问题,其中 html 和 <template> 中的 <button> 并且所有方法都在该文件中,如下所示:

<template>
    <div ref="pdf">
        Hello, this is my awesome html converted into pdf
    </div>
    <button @click="generatePDF">
        make PDF
    </button>
</template>
<script>
import html2pdf from "html2pdf.js"
export default {
    methods: {
        generatePDF() {
            const doc = this.$refs.pdf
            html2pdf(doc)
        },
    },
}
</script>
<style></style>

问题是,上面的解决方案在 DOM 中使用了 space。所以一切对用户都是可见的,这是我想避免的。 此外,父子关系是不行的(就像我将按钮导出到父组件),因为仍然可以看到整个 html。如果我使用 v-ifv-show,那么我会得到一个空白的 pdf 文件。

问题:

  1. 如何在用户看不到 html 的情况下制作 pdf 文件?
  2. 想从不同的组件中获取信息 (html) 并将它们合并到一个 pdf 文件中。这怎么可能?

我 运行 遇到了与 Angular 很久以前的类似问题。我所观察到的

  1. 如何在用户看不到 html 的情况下制作 pdf 文件?

这是不可能的,因为 html2pdf 使用 canvas,它是由 html2pdf 即时创建的。

  1. 想从不同的组件中获取信息 (html) 并将它们合并到一个 pdf 文件中。这怎么可能?

html2pdf功能非常有限,没有我们需要的丰富。这也不行。

用了一个星期后,我换成JSpdf,完全可以完成这些功能。

一次性设置,一旦您创建格式和模板,它将变得更加简单和灵活。