簡體   English   中英

Vue-tables-2 使用 pdfmake 庫從多個選定的表行創建 pdf 文件

[英]Vue-tables-2 create pdf file from multiple selected table rows using pdfmake library

我想在 vue-tables-2 中創建多個選定行的 pdf。 我找到了一個名為pdfmake的 pdf 庫,它看起來很棒。 作為新手,我正在努力了解如何:

  1. 將其帶入 vue-tables-2 組件中。 我要在組件中導入它嗎?
  2. 我將如何創建多個選定表格行數據的 pdf? 我有this.checkedRows內容的this.checkedRows 我如何將其放入pdf?

我看到 pdfmake 有如何構建數據表內容的說明,但是我如何使用 vue-tables-2 使其工作? pdfmake 表格內容截圖

如果有人知道一個更好的 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>

我的數據內容現在只是一個非常簡單的原型:

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');
    }



    }
     }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM