Vue学习之:在 vue2 中引入 pdf.js 并配置使其能工作

2024-07-12 1366阅读

安装

  • 不同版本的 pdfjs 在 node_modules 中的目录不太一样,如果你想让他正常运行就按照我下面的来
  • 确保你的 nvm 版本是 18.17 如果不是的话,建议你配置跟我调成一样的,否则很容易出问题
    nvm install 18.17.0
    nvm use 18.17.0
    
    • 安装 pdfjs,指定版本号 @2 如果你默认下的话会下载 4 开头的版本,会有各种问题
      npm install pdfjs-dist@2
      
      • 运行以下命令以安装处理类私有方法的 Babel 插件:
        npm install --save-dev @babel/plugin-proposal-class-properties @babel/plugin-proposal-private-methods
        

        配置

        • container 的位置 css 设置一定要是 absolute
        • 一定要配置好 EventBus
        • 导入 pdfjsLib 的时候一定要用 import * as pdfjsLib from "pdfjs-dist/build/pdf"; 不能用 import pdfjsLib from "pdfjs-dist/build/pdf"; 否则你无法设置 GlobalWorkerOptions
        • 设置 GlobalWorkerOptions 的时候,本地的如果不行,就按照下面我代码的写 pdfjsLib.GlobalWorkerOptions.workerSrc = "https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.16.105/pdf.worker.min.js";
          • 但是注意其中的 2.16.105 要换成你自己安装的 pdf.js 版本号;在 package.json 中可以查看
          • 在你的 babel.config.js 配置成:
            module.exports = {
              plugins: [
                "@babel/plugin-proposal-class-properties",
                "@babel/plugin-proposal-private-methods"
              ]
            };
            

            示例代码

              
            // 导入 pdfjsLib 的方法要注意 import * as ... import * as pdfjsLib from "pdfjs-dist/build/pdf"; // 引入 eventbus 和 pdfviewer,后面需要配置 import { PDFViewer, EventBus } from "pdfjs-dist/web/pdf_viewer"; // 引入样式 import "pdfjs-dist/web/pdf_viewer.css"; // globalworker 设置,用 CDN 的资源;如果你本地的也可以那就可以配置成本地的 "pdfjs-dist/build/pdf.worker.min.js" pdfjsLib.GlobalWorkerOptions.workerSrc = "https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.16.105/pdf.worker.min.js"; export default { name: "PdfViewer", mounted() { this.getPdf(); }, methods: { async getPdf() { let eventBus = new EventBus(); let container = document.getElementById("pageContainer"); let pdfViewer = new PDFViewer({ container: container, eventBus: eventBus, }); let loadingTask = pdfjsLib.getDocument("你自己的文件.pdf"); let pdf = await loadingTask.promise; pdfViewer.setDocument(pdf); } } }; #pageContainer { position: absolute; //position设置成 absolute margin: auto; width: 80%; } div.page { display: inline-block; }
            Vue学习之:在 vue2 中引入 pdf.js 并配置使其能工作
            (图片来源网络,侵删)
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]