IT小春子 2023-12-08 22:36 采纳率: 72.7%
浏览 469
已结题

node_modules/pdfjs-dist/build/pdf.mjs提示错误……

node_modules/pdfjs-dist/build/pdf.mjs提示错误

<template>
  <div>
    <iframe id="iframe1" ref="iframe1"></iframe>
    <iframe id="iframe2" ref="iframe2"></iframe>
    <iframe id="compare" ref="compare"></iframe>
  </div>
</template>

<script>
import pdfjsLib from 'pdfjs-dist'

export default {
  mounted() {
    this.loadPdfFiles()
  },
  methods: {
    loadPdfFiles() {
      this.loadPdf(this.$refs.iframe1, 'file1.pdf')
      this.loadPdf(this.$refs.iframe2, 'file2.pdf')
    },
    loadPdf(iframe, url) {
      pdfjsLib.getDocument(url).promise.then((pdf) => {
        const pages = []
        for (let i = 1; i <= pdf.numPages; i++) {
          pdf.getPage(i).then((page) => {
            const canvas = document.createElement('canvas')
            const viewport = page.getViewport({ scale: 1.0 })
            canvas.height = viewport.height
            canvas.width = viewport.width
            const context = canvas.getContext('2d')
            const renderContext = {
              canvasContext: context,
              viewport: viewport
            }
            page.render(renderContext).promise.then(() => {
              pages.push(canvas.toDataURL())
              if (pages.length == pdf.numPages) {
                iframe.onload = () => {
                  this.addAnnotations(iframe)
                }
                this.loadIframe(iframe, pages)
              }
            })
          })
        }
      })
    },
    loadIframe(iframe, pages) {
      const html = `
        <html>
          <head>
            <style>canvas { display: block; }</style>
          </head>
          <body>${pages.map((page) => `<img src="${page}">`).join(' ')}</body>
        </html>
      `
      const doc = iframe.contentDocument || iframe.contentWindow.document
      doc.open()
      doc.write(html)
      doc.close()
    },
    addAnnotations(iframe) {
      const doc = iframe.contentDocument || iframe.contentWindow.document
      const canvas = doc.createElement('canvas')
      canvas.setAttribute('id', 'annotationCanvas')
      canvas.setAttribute('style', 'position:absolute; top:0; left:0;')
      canvas.height = iframe.height
      canvas.width = iframe.width
      doc.body.appendChild(canvas)
      canvas.addEventListener('mousedown', (evt) => {
        // TODO: Add annotation logic here
      })
    },
    compareFiles() {
      const doc1 = this.$refs.iframe1.contentDocument || this.$refs.iframe1.contentWindow.document
      const doc2 = this.$refs.iframe2.contentDocument || this.$refs.iframe2.contentWindow.document
      // TODO: Use pdf.js to compare the two PDF files
      const result = { /* Comparison result */ }
      this.showComparisonResult(result)
    },
    showComparisonResult(result) {
      const doc = this.$refs.compare.contentDocument || this.$refs.compare.contentWindow.document
      const canvas = doc.createElement('canvas')
      canvas.setAttribute('id', 'resultCanvas')
      canvas.setAttribute('style', 'position:absolute; top:0; left:0;')
      canvas.height = this.$refs.iframe1.height
      canvas.width = this.$refs.iframe1.width
      doc.body.appendChild(canvas)
      const ctx = canvas.getContext('2d')
      // TODO: Use the result to highlight the differences
    }
  }
}
</script>

运行提示错误内容:

error  in ./node_modules/pdfjs-dist/build/pdf.mjs
Module parse failed: Unexpected character '#' (183:31)
You may need an appropriate loader to handle this file type.
|         }
|       }
>       class AnnotationElement {#
|         hasBorder = false;
|         constructor(parameters, {

 @ ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pingcha/anjian/qianruform.vue?vue&type=script&lang=js& 8:40-61
 @ ./src/views/pingcha/anjian/qianruform.vue?vue&type=script&lang=js&
 @ ./src/views/pingcha/anjian/qianruform.vue
 @ ./src/router/index.js
 @ ./src/main.js
 @ multi (webpack)-dev-server/client?http://192.168.64.136:3000/sockjs-node (webpack)/hot/dev-server.js ./src/main.js

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-12-10 01:54
    关注

    【以下回答由 GPT 生成】

    你好,

    非常抱歉,但是根据提供的信息,我无法提供具体的解决方案。因为你没有提供错误的具体提示信息或者代码示例,我无法确定问题出现的原因所在。我建议你检查以下几点来解决这个错误:

    1. 确保你正确引入了pdfjs-dist库。你可以使用npm或者其他包管理工具来安装这个库,然后在你的代码中引入它。你可以使用下面的命令安装库:
    npm install pdfjs-dist
    
    1. 确认你的PDF文件路径是否正确。请确保路径是绝对路径或者相对路径,并且指向一个有效的PDF文件。

    2. 检查你的代码逻辑是否正确。请确保你在加载PDF文件并进行操作之前,已经完成了必要的初始化步骤。

    3. 查阅pdfjs-dist的文档和错误提示信息。pdfjs-dist库有详细的文档和错误提示信息,你可以查看这些资源来了解更多关于错误的原因和解决方法。

    如果你能提供更多的详细信息或者代码示例,我可以更准确地帮助你解决这个问题。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月23日
  • 已采纳回答 12月15日
  • 创建了问题 12月8日

悬赏问题

  • ¥15 需要写计算过程,求解答
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥15 C++行情软件的tick数据如何高效的合成K线
  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。
  • ¥20 在easyX库下编写C语言扑克游戏跑的快,能实现简单的人机对战