如何使用PDF.JS显示整个PDF(不仅仅是一页)?

2023-12-26

我创建了这个演示:

http://polishwords.com.pl/dev/pdfjs/test.html http://polishwords.com.pl/dev/pdfjs/test.html

它显示一页。我想显示所有页面。一个在另一个下,或者放置一些按钮来更改页面,甚至更好地加载 PDF.JS 的所有标准控件,就像在 Firefox 中一样。如何完成这个?


PDFJS有一个成员变量numPages,所以你只需迭代它们。BUT重要的是要记住,在 pdf.js 中获取页面是异步的,因此无法保证顺序。所以你需要将它们链接起来。你可以按照这些思路做一些事情:

var currPage = 1; //Pages are 1-based not 0-based
var numPages = 0;
var thePDF = null;

//This is where you start
PDFJS.getDocument(url).then(function(pdf) {

        //Set PDFJS global object (so we can easily access in our page functions
        thePDF = pdf;

        //How many pages it has
        numPages = pdf.numPages;

        //Start with first page
        pdf.getPage( 1 ).then( handlePages );
});



function handlePages(page)
{
    //This gives us the page's dimensions at full scale
    var viewport = page.getViewport( 1 );

    //We'll create a canvas for each page to draw it on
    var canvas = document.createElement( "canvas" );
    canvas.style.display = "block";
    var context = canvas.getContext('2d');
    canvas.height = viewport.height;
    canvas.width = viewport.width;

    //Draw it on the canvas
    page.render({canvasContext: context, viewport: viewport});

    //Add it to the web page
    document.body.appendChild( canvas );

    //Move to next page
    currPage++;
    if ( thePDF !== null && currPage <= numPages )
    {
        thePDF.getPage( currPage ).then( handlePages );
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用PDF.JS显示整个PDF(不仅仅是一页)? 的相关文章

随机推荐

  • 从 Windows 批处理文件将空白行回显到控制台 [重复]

    这个问题在这里已经有答案了 当从 Windows 批处理文件将状态消息输出到控制台时 我想输出空行分解输出 我该怎么做呢 以下三个选项中的任何一个都适合您 echo echo echo 例如 echo off echo There will
  • 在 Heroku 上安装 PyODBC 时找不到 sql.h

    我正在尝试在 Heroku 上安装 PyODBC 但我得到fatal error sql h No such file or directorypip 运行时的日志中 我该如何修复这个错误 要跟进下面的答案 Ubuntu 的示例 sudo
  • Azure Functions RunOnStartUp 在配置中设置而不是在编译时设置?

    我有一个 Azure 计时器触发函数 计划在生产中每 3 个月运行一次 然而 在测试环境中 我希望它在每次触发时在启动时运行 目前我有 TimerTrigger TimerInterval RunOnStartup false 我真的不想改
  • 使用 dplyr 和 rollapply 在数据框中滚动预测

    我的第一个问题在这里 我的目标是 给定一个带有预测变量的数据框 每列一个预测变量 行观察值 使用 lm 拟合回归 然后使用滚动窗口使用最后一个观察值来预测值 数据框如下所示 gt DfPredictor 1 40 Y X1 X2 X3 X4
  • 为什么人们一致推荐使用 appConfig 而不是使用设置文件? (。网)

    我经常看到这样的问题的答案 我应该如何在我的 NET 应用程序中存储设置 是通过手动向 app config 或 web config 添加条目来编辑 app config 文件 如下所示
  • 参数“ContactsCtrl”不是函数,未定义

    我在 AngularJS 路由和控制器中遇到问题 这是代码 索引 html div div index js var myApp angular module contacts
  • 水豚服务器和浏览器错误,服务器上没有任何痕迹

    由于某种原因 我的黄瓜测试之一似乎在 poltergeist 驱动程序和 Rails 服务器上都失败了 我得到了浏览器崩溃的完整跟踪信息 但服务器端几乎没有任何信息 当我打开水豚屏幕截图时 我只看到 内部服务器错误 未定义的方法name对于
  • 如何在ckeditor5中的`a`标签中添加“target”属性?

    我已经创建了自己的链接插件 现在我想添加一些其他属性a插件生成的标签 例如target rel 但我无法完成它 这是我的转换器插件代码 我应该添加哪些转换器以便a标签可以支持其他属性吗 license Copyright c 2003 20
  • C++ WinAPI 后台窗口截图

    我想截取没有焦点的窗口的屏幕截图 我的功能适用于某些窗口 但不适用于所有窗口 我不知道为什么 我尝试用它来捕获 Bluestacks App Player 的窗口 效果非常好 但对于 Nox App Player 和其他一些游戏来说 它根本
  • 简化具有重复关联类型限制的 where 子句

    我编写了以下函数来对迭代器求和 use std ops Add fn sum iter i s I init I Item gt I Item where I Iterator Clone i Item Add i i
  • Solr 字段崩溃

    I read http wiki apache org solr FieldCollapsing http wiki apache org solr FieldCollapsing 我尝试了查询 我并没有看到这个领域崩溃 我的意思是我看到了
  • SSRS 的自动化部署选项

    我的任务是研究如何自动化 SSRS 2012 报告的部署过程 有什么好的工具吗 我正在考虑类似按一个按钮 报告就会被部署的事情 Thanks 为了部署我们的 SSRS 报告 我们使用这个可爱的 powershell 项目 https git
  • std::reference_wrapper 和简单指针有什么区别?

    为什么需要有std reference wrapper http en cppreference com w cpp utility functional reference wrapper 应该用在哪里 它与简单的指针有什么不同 它的性能
  • 反应本机相机胶卷

    没有注意到太多关于如何使用 React Native 中的 CameraRoll 库的示例代码 指南 我发现文档中的示例有点 模糊 且令人困惑 我第一次使用任何 API 所以我也不完全理解我应该如何使用该库 到目前为止 我已经将其导入为 i
  • VBA,如果字符串包含某个字母

    我通常不与VBA我无法弄清楚这一点 我试图确定电子表格上的字符串中是否包含某个字母 Private Sub CommandButton1 Click Dim myString As String RowCount WorksheetFunc
  • 为什么 Chrome 无法检查 Docker 容器中的 NodeJS 代码?

    我尝试在 Docker 容器内启动简单的 NodeJS 服务器并使用 chrome inspect 或 WebStorm 对其进行调试 调试端口9229已绑定但检查不起作用 另一方面 当我在没有 docker 的情况下运行相同的代码时 我可
  • 使用 jsPDF rtl 支持将 Html 转为 pdf

    我正在尝试使用 Angular 5 将 html 转换为 pdf这是我的代码 import as jsPDF from jspdf htmlToPdf var doc new jsPDF var specialElementHandlers
  • 从多对多关系续集中选择

    我尝试从一个表中选择并引用另一个表 我在餐桌食品和餐桌配料之间存在多对多的关系 食品型号 module exports function sequelize DataTypes return sequelize define food id
  • 多次读取 Option<&mut T> 的引用

    我有一个Option lt mut T gt 并且想要多次访问包含的引用 如下所示 fn f a Option lt mut i32 gt if let Some x a x 6 if let Some x a x 7 fn main le
  • 如何使用PDF.JS显示整个PDF(不仅仅是一页)?

    我创建了这个演示 http polishwords com pl dev pdfjs test html http polishwords com pl dev pdfjs test html 它显示一页 我想显示所有页面 一个在另一个下