本文介绍如何通过纯前端 javascript(配合 pdf.js)读取用户输入的 pdf url(如本地服务器路径),获取其总页数并动态显示在 html 页面中,同时说明跨域限制及解决方案。
在 Web 开发中,常需动态解析 PDF 文档信息(如页数),但直接通过 输入任意 PDF 链接(例如 Google Drive、外部网站)并用 fetch 读取时,会因浏览器 同源策略(CORS) 而失败——尤其是公共云存储(如 drive.google.com)默认不向第三方站点开放跨域访问头(Access-Control-Allow-Origin)。因此,该方案仅适用于同源 PDF 资源(即 PDF 文件托管在同一域名下,如 https://yoursite.com/docs/report.pdf 或 http://localhost:8080/sample.pdf)。
以下为完整可运行的实现方案:
(同源 PDF)Count Number of Pages inside PDF Document Count Pages inside PDF Document
综上,本方案是轻量、零依赖的前端页数检测方案,适用于可控环境下的 PDF 元数据快速提取。务必确认目标 PDF 可被浏览器合法跨域加载,否则将触发 TypeError: Failed to fetch 或 CORS 错误。