首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue- table -2创建.pdf (pdfmake)“格式错误的表行”错误

Vue- table -2创建.pdf (pdfmake)“格式错误的表行”错误
EN

Stack Overflow用户
提问于 2018-10-03 14:57:04
回答 1查看 1.6K关注 0票数 1

我几乎可以下载.pdf文件中的多个选定(复选框)行在vue-tables-2数据。

在我的代码中,我将标题列和this.checkedRows内容的table.body推送到table.body.复选框输入和'sku',这是一个字符串。这是我的代码:

代码语言:javascript
复制
<template>
    <el-container>
        <side-nav></side-nav>
        <el-main>
            <v-server-table url="/getListings" :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="button" class="btn btn-primary btn-pdf" @click="createPDF">Create Purchase Order</button>
            </v-server-table>
        </el-main>
    </el-container>
</template>


<script>

import {ServerTable, Event} from 'vue-tables-2';    
Vue.use(ServerTable, {}, false, 'bootstrap4');

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

export default {
    data() {
        return {
            toggle:[],
            tableData: [],
            checkedRows: [],
            columns: [
                'selected',
                'sku',
            ],     
            options: {

            }
        }
    },

    methods: {

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

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

</script>

问题在于两个标题列'selected‘、'sku’和一行数据{'sku#'}之间的不匹配,其中我得到了一个'malformed table row error'和一个'cell is undefined'错误。以下是错误:

实际上,我不需要.pdf中的复选框.pdf列,但我不知道如何只包括sku等所需的头列,并省略selected头列。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-03 16:58:13

在您的情况下,您需要以下解决方案:

代码语言:javascript
复制
docDefinition.content[0].table.body.push(["sku"]);
        for(var i=0;i<this.checkedRows.length;i++){

      docDefinition.content[0].table.body.push([this.checkedRows[i]["sku"]]);  
        }

但一般来说,你需要:

代码语言:javascript
复制
docDefinition.content[0].table.body.push(["col1","col2",..,"coln"]);
        for(var i=0;i<this.checkedRows.length;i++){

      docDefinition.content[0].table.body.push([this.checkedRows[i]["col1"],this.checkedRows[i]["col2"],...,this.checkedRows[i]["coln"]]);  
        }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52629959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档