当前位置: 首页 > news >正文

在线PDF阅读方案:jQuery + PDF.js

<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>PDF 多页查看</title><script src="https://code.jquery.com/jquery-3.6.0.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.16.105/pdf.min.js"></script>
</head>
<body><div><button id="prevPage" type="button">上一页</button><button id="nextPage" type="button">下一页</button><span>当前页:<span id="currentPage">1</span> / <span id="totalPages">?</span></span></div><canvas id="pdfCanvas"></canvas><script>$(document).ready(function() {var pdfUrl = "example.pdf";  // 替换成你的 PDF 文件路径var pdfDoc = null;var pageNum = 1;var scale = 1.5;function renderPage(num) {pdfDoc.getPage(num).then(function(page) {var viewport = page.getViewport({ scale: scale });var canvas = $("#pdfCanvas")[0];var context = canvas.getContext("2d");canvas.width = viewport.width;canvas.height = viewport.height;var renderContext = {canvasContext: context,viewport: viewport};page.render(renderContext);// 更新当前页码$("#currentPage").text(num);});}// 加载 PDF 并渲染第一页pdfjsLib.getDocument(pdfUrl).promise.then(function(pdf) {pdfDoc = pdf;$("#totalPages").text(pdf.numPages);renderPage(pageNum);});// 上一页$("#prevPage").click(function(event) {event.preventDefault(); // 阻止默认行为if (pageNum > 1) {pageNum--;renderPage(pageNum);}});// 下一页$("#nextPage").click(function(event) {event.preventDefault(); // 阻止默认行为if (pageNum < pdfDoc.numPages) {pageNum++;renderPage(pageNum);}});});</script>
</body>
</html>

相关文章:

  • 内网和外网怎么互通?外网访问内网的几种简单方式
  • 解决HomeAssistant 无法安装 samba share问题
  • 【数据库原理及安全实验】实验六 角色访问控制
  • 《C++ Templates》:有关const、引用、指针的一些函数模板实参推导的例子
  • C#——NET Core 中实现汉字转拼音
  • Redis 8.0 正式版发布,新特性很强!
  • 品质领航家装时代,亚新丽以匠心雕琢每一寸美好
  • 5.6-DAE实现
  • AI大模型分类以及Prompt优化技巧
  • 迁移学习:如何加速模型训练和提高性能
  • Vue3 自定义指令的原理,以及应用
  • Make:独立创造者手册——从0到1的商业自由之路
  • GPAW安装流程——Ubuntu 系统(Python 3.8.10)
  • 宝塔面板,删除项目后还能通过域名进行访问
  • 【上位机——MFC】对话框
  • 《软件项目管理》笔记一
  • OpenCV 中用于背景分割(背景建模)的一个类cv::bgsegm::BackgroundSubtractorCNT
  • 使用pdm管理python项目时去哪里找nuitka
  • LeetCode第191题_位1的个数
  • 如何通过复盘提升团队能力?
  • 体坛联播|穆勒主场完成拜仁谢幕战,山西车队再登环塔拉力赛
  • 马上评丨学术不容“近亲繁殖”
  • 西甲上海足球学院揭幕,用“足球方法论”试水中国青训
  • 中华人民共和国和俄罗斯联邦关于进一步加强合作维护国际法权威的联合声明
  • 上海质子重离子医院二期项目启动,有望成为全世界最大粒子治疗中心
  • 欧派家居:一季度营收降4.8%,目前海外业务整体体量仍较小