javascript - Vue-tables-2 使用 pdfmake 库从多个选定的表行创建 pdf 文件

标签 javascript vue.js vuejs2 vue-component pdfmake

我想在 vue-tables-2 中创建多个选定行的 pdf。我找到了一个名为pdfmake的pdf库看起来很棒。作为新手,我正在努力了解如何做到:

  1. 将其放入 vue-tables-2 组件中。我是否将其导入到 组件?
  2. 如何创建多个选定表格行数据的 pdf 格式?我有 this.checkedRows 作为 tableData 内容。我如何将其转换为 pdf 格式?

我看到 pdfmake 如何提供构建数据表内容的说明,但是如何使用 vue-tables-2 使其工作? pdfmake table content screenshot

如果有人知道 vue-tables-2 更好的 pdf 库,请告诉我。 这是到目前为止我的代码...

<v-server-table url="/removals" :data="tableData" :columns="columns" :options="options">

    <input slot="selected" slot-scope="props" type="checkbox" :checked="props.row.selected" v-model="checkedRows" :value="props.row">

    <button slot="afterFilter" type="submit" @click="createPDF">Create PDF</button>

 </v-server-table>

我的数据内容现在只是一个非常简单的原型(prototype):

data() {
    return {

        tableData: [],

        checkedRows: [],

        columns: [
            'selected',
            'sku',
        ],

        options: {

        }
    }

还有我的方法...

methods: {

    createPDF() {
        pdfMake.createPdf(docDefinition).download('PO.pdf');
    }


}

最佳答案

您可以使用以下命令安装pdfmake:

 npm install pdfmake --save-dev

并按如下方式导入并使用它

<template>....</template>
<script>
    var pdfMake = require('pdfmake/build/pdfmake.js');
    var pdfFonts = require('pdfmake/build/vfs_fonts.js');
    pdfMake.vfs = pdfFonts.pdfMake.vfs;

    export default{ 

        data() {
            return {
              tableData: [],
              checkedRows: [],
              columns: [
                   'selected',
                   'sku',
               ],

            options: {

                     }
           },
         methods: {

                            createPDF() {
        var docDefinition = {
        content: [
            {
                table: {
                    headerRows: 1,
                    widths: [ '*', 'auto', 100, '*' ],

                    body: []
                }
            }
        ]
        };
        docDefinition.content[0].table.body.push(this.columns);
        for(var i=0;i<this.checkedRows.length;i++){
            docDefinition.content[0].table.body.push(Object.values(this.checkedRows[i]));  
        }
        pdfMake.createPdf(docDefinition).download('PO.pdf');
    }



    }
     }

关于javascript - Vue-tables-2 使用 pdfmake 库从多个选定的表行创建 pdf 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52609607/

相关文章:

javascript - 如何使用 fontawesome 图标更改选择标签内的箭头图标。我正在使用 Vue-Cli。我在 main.js 中导入了 fontawesome

vue.js - 如何确定 vue.js 是在站点还是 Web 应用程序中使用?

javascript - 在加载/选择时随机化图像库

javascript - HighCharts 饼图,50 多个标签,未显示全部

vue.js - 触发vue js时更改列表中绑定(bind)的值

unity3d - 从统一 webGL 向 Vue js 发送消息

vuejs2 - Vue Router beforeRouteLeave 不会停止子组件

javascript - 匹配正斜杠后的最后一个或多个数字

javascript - 网络音频分析器的 getFloatTimeDomainData 缓冲区偏移量在其他时间的缓冲区和 'complete file' 的缓冲区

javascript - 单击按钮移动到 vuetify 的下一个选项卡