问题标签 [pdfjs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - For Loop - Changing src every loop
I'm trying to load pdfs and render every single page into a canvas. It works when I'm only loading a one paged .pdf but not when I'm using a multiple page .pdf
The for-loop is supposed to run as often as there are pages in the pdf,
Every loop I'm creating a
which should have the matching page number as class.
But for some reason it always gets the total page count as class. E.g. when loading a five paged .pdf it creates...
...5 times and not 'pdfpage0', 'pdfpage1', etc.
I'm pretty new to JS so I'm not exactly sure if I'm thinking in the right direction with 'i'. I added
to confirm that i really adds +1 every turn.
javascript - 创建和填充 json 对象
我需要使用来自方法的值构造和填充一个 json 对象。一些背景知识:我正在使用指定的关键字搜索 pdf 文档,如果找到任何匹配项,对于每个匹配项,我需要保存: - 找到匹配项的整个句子 - 搜索词(在其他地方定义:搜索词总是相同的,所以这里真的是多余的,但我可能需要它在 json 对象中,这就是我包含它的原因) - 结果(这是在整个句子中找到搜索词的索引,它应该是一个整数)所以,这里有一些代码。我在循环中有这个函数调用(循环遍历页面,然后有第二个循环遍历文本):
和函数本身:
所以我需要构造一个 json 对象,在每次迭代时都接受上面讨论的参数:
那么,最好的方法是什么 - 我对 json 有点生疏了?我想我会从创建一个像这样的空对象开始(如果这甚至是一个有效的定义):
如果以上是正确的,我在哪里定义对象以及如何用相关值填充它?请记住,会有很多行、一个搜索词和很多结果,因为我将使用的文档(pdf)非常大,可以返回很多匹配项,谢谢
javascript - javascript promise,这里需要吗?
我对如何使用承诺有点困惑。我已经阅读了一些关于 Promise 的内容,主要是因为我似乎必须使用它们。我正在开发一个小型应用程序,该应用程序应该使用 pdfjs 搜索一些 pdf,并且它们使用 Promise。通过查看网上的各种示例,我在 nodejs 中找到了一些东西,但我遇到了一个问题。
我们先来看代码:
这段代码的目的是:
循环浏览 pdf 的页面
循环浏览内容
逐行获取变量中的pdf文本
使用关键字搜索 pdf 内容
如果关键字找到匹配项,则打印匹配项
获取 javascript 对象中的匹配项
所以,一切正常,但你会注意到,从第二个 for 循环内部(我得到 pdf 的文本)我调用了一个函数,searchPdf()
它基本上执行搜索,并在该函数中我调用另一个constructResult(...)
函数应该使用结果创建 javascript 对象。
我在打印这个对象时遇到了一些问题,因为如果我在 for 循环范围之外打印它,它是空的,因为打印调用(在我的情况下是 console.log)在循环实际复制和分析之前执行(读取过程并找到匹配项)文本。所以,promise 看到了解决问题的方法。问题是,我不确定如何以这样一种方式编写代码,以便我可以链接承诺并在所有内容执行后打印我的对象。任何想法?
编辑:所以要澄清一下,我需要依次是:1)循环通过pdf(我将不得不修改代码以很快在某个时候循环通过pdf集合)2)获取每一行文本3)检查有一个匹配 4)如果是这样,复制 javascript 对象中的文本行 5)打印 javascript 对象
javascript - 无法在现有的上绘制矩形
任务
在您的页面中有一个
<canvas id="pdfCanvas">
画布为现有画布创建一个织物画布
new fabric.Canvas("pdfCanvas");
具有 mouse.down、mouse.up、mouse.move 方法以启用在上述画布“pdfCanvas”中绘制矩形渲染 pdf 使用 PDF.js 浏览器现在显示渲染的 PDF在 pdf 上绘制矩形,它隐藏了渲染的画布,但它确实绘制了对象
问题
这是查看问题的小提琴:-运行上面的https://jsfiddle.net/hiitskiran/wgz8qore/2/- 您可以看到织物矩形隐藏在渲染的pdf后面-单击pdf画布区域以查看织物对象
javascript - 使用 javascript 实现同义词搜索
我正在使用 pdfjs 循环浏览一些 pdf 并运行搜索一些搜索词。此时,如果找到匹配项,则返回包含搜索词的行并将其存储在对象数组中。我现在需要向搜索添加另一个功能,并实现某种同义词搜索,这样如果找到匹配项,它不仅会返回包含匹配项的行,还会返回包含匹配项同义词的行。我做了一些谷歌搜索,但我没有遇到任何相关的东西。我不知道这涉及到什么——大概是某种数组,我可以在其中存储搜索词和同义词——所以我想知道是否有人可以给我一个想法或任何建议?谢谢
编辑:对,按照你们所说的,如果我进行较小规模的搜索,这就是我想做的事情:-创建一组搜索词和同义词,就像这样
然后这就是我设想可能发生的事情:
angular - ng-bootstrap 选项卡不保留画布(pdfjs)内容
背景:
我正在使用(ng-bootstrap@1.0.0-alpha.14)将使用的 Angular 1 应用程序移植UI Bootstrap
到 Angular 2 。ng-bootstrap
在 Angular 1 应用程序中,我使用和uib-tabset
来动态创建选项卡。在 Angular 2 中,我使用,并做同样的事情。 每个选项卡都包含一个我使用 pdfjs 填充的画布。标签加载工作得很好。 uib-tab
ng-repeat
ngb-tabset
ngb-tab
*ngFor
但是,当我从一个选项卡上单击并返回它时,PDF 内容就消失了。
想法:
我可以解决此问题的唯一方法是在每次选择选项卡时加载 PDF 内容,但我并不热衷于这样做。我注意到ng-bootstrap
只有当前/可见选项卡实际上在 DOM 中。在 UI Bootstrap 中,所有选项卡都在 DOM 中,但当然只有一个可见 - 在选项卡之间导航不会导致 PDF 内容消失。
有没有人在新的引导程序中看到这种行为?听起来新的引导程序在您单击其他选项卡时将其从 DOM 中删除时并没有保存选项卡的所有内容。关于如何解决此问题以实现以前的行为的任何想法/建议?
javascript - viewer.js / pdf.js:每次呈现 pdf 时内存使用量都会增加
我的问题是,每次使用 viewer.js 渲染 pdf 文件时,我的应用程序的内存使用量都会增加。
我以这种方式呈现我的pdf:
我在单独的视图中渲染文件。当我返回之前的视图并打开另一个文件时,内存使用量增加了约 20MB。
我试过这个:
现在,内存使用量减少了一点,但没有以前分配的那么多。
有解决方案吗?
更新:
pdf.js 版本:1.6.210
pdf.js 工作者版本:1.6.210
javascript - 在 PDFKit 中旋转文本有什么技巧吗?
我正在使用PDFKit.org通过 JavaScript 生成 PDF。
该文档非常不言自明,但我面临一个未解决的问题,我猜一些 StackOverflow 成员可能已经找到了一个技巧来做到这一点。
我必须在某个时候旋转文本,并且文档仅说明如何旋转形状(如 a rect()
)。
我已经尝试了几件事,但到目前为止都没有。
所以我正在寻找一种通过调整代码来旋转它的方法,或者你们中的一些人可以向我展示我可能错过的文档的一部分?
javascript - 我应该如何使用打字稿中的“pdf”包
我已经安装了 pdf,包括使用的类型
不幸的是,我找不到任何关于如何使用它的文档。如果我做:
我得到:
那么我应该如何初始化呢?
javascript - Mozilla PDF - 如何从反应应用程序中的 url 查看 PDF?
我遵循了一个关于如何使用 React 实现 Mozilla 的 PDF 查看器的快速教程。我在这里做了一个codesanbox 。我想知道这是否可以通过导入pdfjs的节点模块来实现。因此,不要将包下载到公用文件夹以将其与导入一起使用:
此外,当 PDF 的源是 URL 时,这种设置不起作用。如果我这样做,我会收到一个错误:
PDF.js v2.5.207 (build: 0974d6052) 消息:文件来源与查看者的不匹配
我已经注释掉了在pdfjs-2.5.207-dist/web/viewer.js中检查文件来源的代码部分:
但是,然后我得到一个错误:
PDF.js v2.5.207 (build: 0974d6052) 消息:获取失败
我怎样才能解决这个问题?是否可以像模块一样将这个包导入到反应组件中,我如何将它用于带有 URL 的外部资源的 PDF?