Vue页面上实现PDF导出

Vue页面上实现PDF导出

  1. 下载包 npm i vue-to-pdf --save
  2. 在main.js/App.js中加入引用:
import vueToPdf from 'vue-to-pdf';
Vue.use(vueToPdf);

3.页面
在这里插入图片描述

点击导出pdf
在这里插入图片描述
页面代码

<template>

<div>
    <button  @click="savePdf()">导出pdf</button>
    <div style="width: 100%;padding:10px" >
      <table
      style="width:1000px"
        align="center"
        width="100%"
        border="1"
         ref="exportPdf"
      > 
        <tbody>
          <tr>
            <th colspan="10" class="zxstyle ly">
              计算机专业(专业代码:456454)
            </th>
          </tr>
          <tr>
            <th class="zxstyle">课程类型</th>
            <th class="zxstyle">序号</th>
            <th class="zxstyle">课程代码</th>
            <th class="zxstyle">课程名称</th>
            <th class="zxstyle">学分</th>
            <th class="zxstyle">教材名称</th>
            <th class="zxstyle">主编</th>
            <th class="zxstyle">出版社</th>
            <th class="zxstyle">版次</th>
            <th class="zxstyle">备注</th>
          </tr>
          <tr v-for="(item, index) in sjList" :key="item.id">
            <td
              align="center"
              :rowspan="item.kclxspan"
              :class="{ hidden: item.kclxdis }"
            >
              {{ item.kclx }}
            </td>
            <td>{{ index + 1 }}</td>
            <td>{{ item.kcdm }}</td>
            <td>{{ item.kcmc }}</td>
            <td>{{ item.xf }}</td>
            <td>{{ item.cjmc }}</td>
            <td>{{ item.zb }}</td>
            <td>{{ item.cbs }}</td>
            <td>{{ item.bc }}</td>
            <td>{{ item.bz }}</td>
          </tr>
        </tbody>
      </table>
    </div>
</div>
</template>
<script>
export default {
  name: "pdf",
  data: function() {
    return {
      sjList: [
        {
          kclx: "公共课",
          kcdm: "000015",
          kcmc: "语文",
          xf: "14",
          cjmc: "语文",
          zb: "张宏",
          cbs: "北京大学出版社",
          bc: "2025",
          bz: "无"
        },
        {
          kclx: "公共课",
          kcdm: "000013",
          kcmc: "英语",
          xf: "52",
          cjmc: "英语",
          zb: "张近东",
          cbs: "北京大学出版社",
          bc: "2027",
          bz: "无"
        },
        {
          kclx: "公共课",
          kcdm: "000019",
          kcmc: "数学",
          xf: "14",
          cjmc: "数学",
          zb: "阿斯蒂",
          cbs: "北京大学出版社",
          bc: "2028",
          bz: "无"
        },
        {
          kclx: "考核课",
          kcdm: "000056",
          kcmc: "物理",
          xf: "11",
          cjmc: "物理",
          zb: "萨蒂",
          cbs: "北京大学出版社",
          bc: "2029",
          bz: "无"
        },
        {
          kclx: "考核课",
          kcdm: "000045",
          kcmc: "化学",
          xf: "14",
          cjmc: "化学",
          zb: "名点",
          cbs: "北京大学出版社",
          bc: "2027",
          bz: "无"
        },
        {
          kclx: "公共课",
          kcdm: "000085",
          kcmc: "生物",
          xf: "36",
          cjmc: "生物",
          zb: "张炯",
          cbs: "北京大学出版社",
          bc: "2028",
          bz: "无"
        }
      ]
    };
  },

  methods: {
    // 导出为pdf
      savePdf(){
       this.$PDFSave(this.$refs.exportPdf, "文件名称");
   },
  }
};
</script>
<style scoped>
.hidden {
  display: none;
  
}

table {
  border-collapse: collapse;
  margin: 0 auto;
  text-align: center;
}
table td,
table th {
  border: 1px solid #cad9ea;
  color: #666;
  height: 30px;
}
table thead th {
  background-color: #cce8eb;
  width: 100px;
}
table tr:nth-child(odd) {
  background: #fff;
}
table tr:nth-child(even) {
  background: #f5fafa;
}
</style>
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值