在electron中实现PDF的在线预览

本文介绍了在 Electron 3.x 之后如何解决不支持PDF预览的问题,提供了三种实现PDF在线预览的方法:1) 使用pdfjs-dist,虽然样式简单但能实现分页和打印;2) 集成pdfjs-dist到Webpack配置,参考了思否GitHub上的文档;3) 安装electron-pdf,但由于新建窗口而不适用。
摘要由CSDN通过智能技术生成

由于公司业务的开发需要,需要实现在electron上实现PDF的在线预览功能。electron 3.x版本后就不在支持PDF的预览功能了,官方给的解释是由于人手不够将不再支持PDF预览功能(也是醉了),在经过一番调研结合大佬们的经验实现了PDF的在在线预览功能

实现方式一、

  1. 下载pdfjs-dist

  2. 将下好的文件放入static文件目录下

  3. 在electron的主线程中通过渲染线程与主线程之间的通信获取viewer.html文件位置

    // 监听获取viewer.html文件位置、
    function getUrl(win) {
         
      const filePath = process.env.NODE_ENV === 'development' ? `${
           __static}\\pdfjs\\web\\viewer.html` : path.resolve(__dirname, '../../../static/pdfjs/web/viewer.html')
      win.webContents.send('recieve', filePath)
    }
    // pdf预览获取viewer.html文件位置
        ipcMain.on('getUrl', () => getUrl(win))
    
  4. 在pdf.vue中写

    <template>
       <iframe
            :src="base + '?file=' + url"
            :width="width"
            :height="height"
            class="iframe-placeholder"></iframe>
    </template>
    <script>
    import {
          ipcRenderer } from 'electron' // eslint-disable-line
    
    export default {
         
      props: {
         
        url: {
         
          type: String,
          default: '',
        },
        width: {
         
          type: Number,
          default: 750
        },
        height: {
         
          type: Number,
          default: 600
        },
      },
      data() {
         
        return {
         
          preview: false,
          base: '',
        }
      },
      computed: {
         
        // 讲义文件名
        name() {
         
          const uri = decodeURI(this.url)
          const arr = uri.split('/')
          
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值