【问题标题】:pdfjs cannot use function 'getPageIterator'pdfjs 不能使用函数'getPageIterator'
【发布时间】:2022-01-19 03:26:46
【问题描述】:

我正在尝试遵循https://www.pdftron.com/documentation/core/guides/features/manipulation/remove/ 此处找到的 pdfjs 文档,试图从我上传到我的 html 页面的 PDF 中删除一个页面。这是我的html代码:

<script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.2.228/pdf.js"></script>
<input type="file" id="input"/>
<script>
    document.getElementById('input').addEventListener('change', function(e){
        var reader = new FileReader()
        reader.onload = function(x){
            window['pdfjs-dist/build/pdf'].getDocument({data:x.target.result}).promise.then(function(doc){
                doc.pageRemove(doc.getPageIterator(5));
                console.log(doc.numPages)
            })}
        reader.readAsBinaryString(e.target.files[0])
    }, false)
</script>

当我将 PDF 文件上传到页面时出现此控制台错误:

removeDemo.html:10 Uncaught (in promise) TypeError: doc.getPageIterator is not a function 

我上传的 PDF 超过 5 页,因此特别要求删除第 5 页应该不是问题。其他功能似乎确实有效,例如,我在上面的代码中有一行打印文档的页数。当我注释掉“getPageIterator”行时,这很好用。所以这似乎是这个特定功能的问题,而不是更普遍的问题。我想知道是什么导致了这个问题。如果这是相关的,我会在 macbook pro 上用 chromium 运行它。

如果上述问题中有什么我可以进一步澄清的地方,请告诉我。

【问题讨论】:

    标签: javascript html pdf pdfjs pdftron


    【解决方案1】:

    Mozilla主导的pdf.js主要是一个浏览器插件pdf查看器,没有编辑器功能。

    您调用 doc.pageRemove(doc 的函数用于 PDFTron webview / edit SDK,因此特定于该商业 JavaScript 库。

    【讨论】:

    • 是否有 PDFTron 的替代方案允许编辑器功能?谢谢
    【解决方案2】:

    您从 PDFTron 链接到的文档与 PDF.js 无关,它是一个完全独立的 SDK。这就是您在其他 SDK 上调用 SDK API 时出错的原因。

    由于 PDF.js 不支持从 PDF 中删除页面(一般也不支持编辑),因此我假设您的意图是使用 PDFTron SDK 在浏览器客户端中删除(或以其他方式编辑)PDF 文件。

    在这种情况下,您需要执行以下操作。

    查看此示例: https://www.pdftron.com/documentation/web/samples/pdf-manipulation/#page-operations

    请参阅此处以开始使用 SDK: https://www.pdftron.com/documentation/web/get-started/

    【讨论】:

      猜你喜欢
      • 2015-10-25
      • 2020-03-28
      • 2019-11-04
      • 2020-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-10
      相关资源
      最近更新 更多