Vue:在组件中使用自定义库(pdf.js)

2024-01-12

如何在 Vue 组件中使用供应商库(特别是我想使用 PDF.js)? (我只想为这个特定组件加载它,因为它们是相当大的文件)

我正在构建一个需要加载 pdf 的编辑器。所以我将 pdf.js 和 pdf.worker.js 放在 /src/assets/vendor/pdfjs 中

然后我将两者加载到 template-editor-page.hbs 中,该模板也加载了该组件:

<div class="content">
  <div class="row fill">
    <div class="col-md-2 fill br pt30">
    </div>
    <div class="col-md-10 fill pt30 pl30 pr30">
      <div id="template-editor" class="template-editor">  
        <template-editor template-src="{{template.src}}"></template-editor>    
      </div>
    </div>
  </div>
</div>
<script src="/assets/js/template-editor.bundle.js"></script>
<script src="/assets/vendor/pdfjs/pdf.js"></script>
<script src="/assets/vendor/pdfjs/pdf.worker.js"></script>

我的 template-editor.js (我必须在这里加载它吗?):

import Vue from 'vue';
import templateEditor from './components/template-editor.vue';

new Vue({
  el: '#template-editor',
  components: { templateEditor }
});

现在我想将文件加载到 template-editor.vue 中:

<template>
    <!-- ... -->
</template>

<script>

  export default {
    props: ['templateSrc'],
    name: 'template-editor',
    data() {
      return {
        src: this.templateSrc
      };
    },
    methods: {
      render() {
        PDFJS.getDocument(this.$data.src).then(function(pdf) {
          console.log(pdf);
        }, err => console.log(err));
      }
    },
    created: function() {
      this.render();
    }
  };
</script>

但我收到一条错误消息

ReferenceError: PDFJS is not defined

其他一切似乎都很顺利。我缺少什么?


我认为您的组件中缺少的只是一个 import 语句,

更正尝试在下面的导入位置使用“@”。我忘了,您的组件可能位于“src”的子文件夹中。另请参阅下面有关 pdfjs-dist 的注释。

<script>
  import { PDFJS } from '@/assets/vendor/pdfjs/pdf.js'

  export default {
    props: ['templateSrc'],
    name: 'template-editor',
    ...

选择

由于您有 webpack,您最好将 pdfjs-dist 安装到节点模块中(请参阅pdfjs-dist https://www.npmjs.com/package/pdfjs-dist),并将其从 './assets/vendor/pdfjs/pdj.js' 中删除

npm install pdfjs-dist

如果你这样做,导入会更加“标准”,

import { PDFJS } from 'pdfjs-dist'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue:在组件中使用自定义库(pdf.js) 的相关文章

  • 在 Node.js 中一次迭代 50 个项目的数组

    我是 node js 的新手 目前正在尝试编写数组迭代代码 我有一个包含 1 000 个项目的数组 由于服务器负载问题 我想一次迭代 50 个项目的块 我目前使用 forEach 循环 如下所示 我希望将其转换为上述块迭代 result i
  • while 循环中 regex.exec() 赋值的更好解决方案

    这里有更好的解决方案吗 我尽量避免里面的作业while但仍然能够循环匹配并使用捕获的组 var match var CSS URL PATTERN url s s s s gm while match CSS URL PATTERN exe
  • 如何使用 HTML 元素阻止 THREE.js 光线投射?

    我希望页面上的 HTML 元素阻止 THREE js 光线投射 我该如何执行此操作 我遇到的问题是 当用户单击打开的 DIV 元素时 光线投射会检索场景中的对象 它会检索 DIV 后面的对象 我不想在 DIV 打开时禁用光线投射 我纯粹希望
  • 禁用小写字符下划线:g q p j y?

    有时您不希望下划线盲目地穿过带下划线的页面标题 有没有办法自动优雅地禁用强调对于某些小写字符 在这些情况下 最好不要在这些小写字母下划线 例如 g q p j y CSS h1 text decoration underline PAGE
  • 谷歌脚本循环性能

    我是 google 脚本的新手 我不确定为什么与 Excel VBA 的简单循环相比 我的性能如此差 我附上了下面的代码 它是一个大约 1200 行的循环 每秒删除大约 2 3 行 我写的脚本效率很低吗 我还不熟悉 Javascript 但
  • 如何阻止地址自动填充谷歌地点

    所以我在我的表单上有一个谷歌地图自动完成功能 当它到达一个位置时 它会占据该位置并格式化它 以便所有正确的信息都进入表单上的不同输入 我遇到的问题是在 place changed 事件触发自动完成填充输入之前 我想阻止最初的人口 而是填充我
  • 克隆元素对应表单中所有元素的事件

    我成功克隆了表行 其中包含从数据库检索的值 不过我对它没有什么问题 我对所有元素使用了类 因为克隆会重复 ID 不会出现问题 因为它无法唯一地定位每个元素 使每个元素 行在这里唯一的方法是什么 功能如何工作 当第一次选择框时 所选 ID 的
  • 外部 CSS 是否应用于 jsPDF 生成的 pdf

    我已经开始使用 jspdf 制作一些演示 我有一个 html 文件 我的 css 在外部文件中 我写了下面的代码来生成我的pdf pdfButton on click function var pdf new jsPDF p in lett
  • CKEDITOR.styleSet.add - 'a' 元素的新样式

    由于某种原因如果我改变 p to a 它不再出现在样式列表中 有什么理由吗 CKEDITOR stylesSet add default name Wys wiersza 1 element p styles line height 18p
  • React 功能组件:作为函数调用与作为组件调用

    假设我有一个功能组件 const Foo props gt div props name div 直接作为函数调用有什么区别 const fooParent gt div Foo name foo div 与将其称为组件相比 const f
  • 为什么 html 中的 AngularJS 错误没有显示在控制台中?

    Here s a fiddle http jsfiddle net 6y7odxmj 3 用于说明 当 ng click 指令 例如 调用未在控制器的 scope 或其父级 上定义的函数时 它会默默地失败 当我尝试调试网页时 这种行为令人抓
  • Javascript for 循环跳过最后一个元素

    我有一个数组 根据某些条件从中删除某些元素 当我删除元素时 我会重新启动 for 循环 因为索引已刷新 var k for k 0 k lt this j data length k if condition true this j dat
  • 新部署后,React 应用程序必须清除浏览器缓存

    我们正在使用 Jenkins 管道在 apache 服务器上部署 React 应用程序 当我们部署新代码时 大多数新功能都可以正常工作 但并非所有更改都反映浏览器中的最新内容 用户必须打开隐身窗口或清除缓存才能看到新功能 我见过一些相关的解
  • 扩展html表格突出显示行和列并使当前单元格具有不同的颜色

    我找到了用鼠标悬停时突出显示行和列的示例 https stackoverflow com a 28312853 139698 https stackoverflow com a 28312853 139698 如何使鼠标悬停的一个单元格变为
  • 特别更改画布上的笔画不透明度,但不更改颜色

    我有一个漂亮整洁的脚本 可以循环显示颜色 并且与 xxxxxx格式 但我想改变透明度 有没有办法做到这一点 我指的是ctx strokeStyle 这是当前的代码 canvas strokeStyle 16777215 s length i
  • 处理照片上传的最佳方式是什么?

    我正在为一个家庭成员的婚礼制作一个网站 他们要求的一个功能是一个照片部分 所有客人都可以在婚礼结束后前往并上传他们的照片 我说这是一个很棒的想法 然后我就去实现它 那么只有一个问题 物流 上传速度很慢 现代相机拍摄的照片很大 2 5 兆 我
  • 云函数 onUpdate:无法读取未定义的属性“forEach”

    现在我正在尝试更新我的项目中的图片 我可以更新云火商店中的图片网址 但我也想使用 firebase 云功能从云存储中删除上一张图片 我想要实现的是 当我上传新图片时 从云存储中删除以前的图片 This is my data structur
  • 谷歌绘制具有相同比例的多个系列的图表

    我正在寻找一种在图形上显示多个系列的方法 这些系列具有相同的比例但仅显示一次 正如你在这里看到的 http jsfiddle net Youkoal d3xwnqdu http jsfiddle net Youkoal d3xwnqdu 我
  • 带有延迟的 jQuery 切换类只能运行一次

    当涉及到 jQuery 匿名函数和延迟时 我显然错过了一些基本的东西 下面的代码每次页面加载只能运行一次 它将添加该类 然后在 1 秒后将其删除 如果我再次单击 它将添加该类 但在页面持续时间内永远不会删除该类 除非我重新加载页面 var
  • 如何在 Servlet 中打开弹出窗口,然后重定向页面

    我想在调用 servlet 时打开一个弹出窗口 然后想将 servlet 重定向到某个 jsp page 这就是我所做的 protected void doGet HttpServletRequest request HttpServlet

随机推荐

  • 如何知道 reCAPTCHA v3 是否有效?

    我的前端使用 vuetify 如下 validate async function let tokenCaptcha await this recaptcha login then token gt tokenCaptcha token i
  • Spark 上的 MC-斯坦?

    我希望使用MC Stan http mc stan org on Spark http spark apache org 但谷歌搜索似乎没有相关页面 我想知道这种方法在 Spark 上是否可行 因此如果有人让我知道 我将不胜感激 此外 我还
  • 合并两个接口

    寻求确认或澄清 如果我有两个接口 创建这两个界面的合并的 正确 方法是什么 IFoo some stuff IBar some stuff IFooBar extends IFoo IBar Empty 它可以工作 但感觉很奇怪 就像我对空
  • 如何将大文件从表单上传到 Phoenix?

    我有一个带有文件字段的 HTML 表单 用于将文件上传到 file我的 Phoenix 应用程序中的路线 我从命令行模仿这种行为curl v F file MyTestFile http localhost 4000 file 为了更快的测
  • Symfony2 + CreateFormBuilder 如何在表单中渲染图像

    我使用 Symfony2 和 CreateFormBuilder 来创建我的表单 目前我正在使用 form widget form 显示表单 我的实体有path属性是图像保存在文件系统上的路径 我想以表单显示图像 带有 img html 标
  • 检测传入的 XML“CR”字符,然后转换为

    我在 ASP 内部使用 XSLT 它由 msxml6 提供服务 加载到对象的传入 XML 具有 回车符 我认为这可能是 ASCII 10 我想将它们转换为 br 在输出中 我正在尝试检测 10 在传入的 XML 中 但似乎找不到 我尝试过
  • jquery 选择(每个)所有选中的复选框?

    任何人都可以帮助解决以下问题 它不会返回任何选中的复选框 我做错了什么吗 I have input type checkbox checked type element each function index alert checked i
  • 强制关键帧是什么意思?

    强制关键帧是什么意思 根据doc https ffmpeg org ffmpeg html force key frames stream specifier expr expr output per stream 在指定的时间戳强制关键帧
  • 使用 CSS 更改
    高度

    我见过一个question https stackoverflow com questions 1409649 how to change height of a br这里大致相同 但我无法得到任何工作答案 至少在 Chrome 上 这个问
  • 是否可以在 JPA 中映射 map> ?

    我在想如果我使用像这样的地图Map
  • 使用 pandas GroupBy 获取每个组的统计数据(例如计数、平均值等)?

    我有一个数据框df我使用其中的几列来groupby df col1 col2 col3 col4 groupby col1 col2 mean 通过上面的方式 我几乎得到了我需要的表格 dataframe 缺少的是包含每组中的行数的附加列
  • 对 Mysql 中不同条件的行求和

    原来的表很大 所以我将其简化 mytable CONDITION SIZE 1 10 9 10 9 10 1 20 9 20 1 20 1 30 使用类似于以下的查询 SELECT CASE WHEN CONDITION 1 THEN OK
  • 连接MySQL数据库很慢,需要n秒

    为什么连接到我的 InnoDB 数据库经常延迟整数秒 一些背景 我有一个非常小的 MySQL 数据库 由一个表 users 150 条记录 和一个表 connections 增长到 150 150 条记录 组成 表和索引加起来不到 5 MB
  • 尝试在一行 if 语句中使用 pass 关键字时出错

    困惑这是否有效 if 5 2 0 print no remainder else pass 但不是这个 print no remainder if 5 2 0 else pass SyntaxError invalid syntax 后者不
  • 在 Android Studio 3.4.1 中继续面临进程意外退出

    更新后Java面临一个问题进程意外退出在创建 Android 版本时 我正在使用Android Studio 3 3 0并将其也更新为3 4 1也可以查看任何更新 但没有任何变化 目前我正在使用 classpath com android
  • Coldfusion jQuery getJSON:获取 WDDX 而不是 JSON

    我正在使用 Brian Rinaldi 的 Coldfusion 函数将 dotnet Webservice 数据集转换为查询结构 然后 每个查询都会以 JSON 形式返回到客户端页面 以便在 jQuery 函数中使用 查询是有效的查询对象
  • 如何确定 DynamoDB 项目是否确实被删除?

    DynamoDB 提供了用于删除项目的 API 在返回的DeleteItemOutcome and DeleteItemResult没有字段或方法来确定是否找到该密钥以及该项目是否确实被删除 查明该项目是否确实存在并已删除的唯一方法是请求该
  • 我可以在 python 中调用 Lambda 表达式中的函数吗

    我有一个包含 if else 条件和 for 循环的函数 我想在 lambda 表达式中编写这个函数 我尝试了多种方法来创建这个 lambda 函数 但我还是做不到 这是我的功能和另一个规则 negation no not never sp
  • BroadcastReceiver 未接收广播

    我正在尝试使用以下扩展代码来广播 toast 消息Activity 但广播没有被其他人接收到Activity 则不显示 toast 有人可以解决我的错误吗 主要活动是发送广播 java import android app Activity
  • Vue:在组件中使用自定义库(pdf.js)

    如何在 Vue 组件中使用供应商库 特别是我想使用 PDF js 我只想为这个特定组件加载它 因为它们是相当大的文件 我正在构建一个需要加载 pdf 的编辑器 所以我将 pdf js 和 pdf worker js 放在 src asset