跳到主要内容

pdfjsLib

需要等 pdfjsLib 加载完成后,才可以调用。可使用如下方式:

document.addEventListener('DOMContentLoaded', () => {
main()
})

function main() {
// 在这里使用 pdfjsLib
}

pdfjsLib.version

返回当前 pdf.js 的版本。

console.log(pdfjsLib.version) // 4.3.136

pdfjsLib.build

返回当前 pdf.js 的构建版本 git 提交 hash 值。

console.log(pdfjsLib.build) // 0cec64437

pdfjsLib.isPdfFile()

返回指定文件是否是 PDF 文件。这个是通过正则匹配文件名实现,并不一定精准。

console.log(pdfjsLib.isPdfFile('a.pdf')) // true

pdfjsLib.getDocument()

用于加载 PDF 文档。

入参

参数例子说明
url'./demo.pdf' 'https://example.com/test.pdf'PDF 文件地址,支持本地地址和远程地址
httpHeaders{ Authorization: 'Bearer your_token' }自定义 HTTP 请求头,用于在请求 PDF 文档时添加额外的头信息。这对于需要身份验证或自定义头信息的请求非常有用
withCredentialstrue指定是否在请求中包含凭证信息,比如 cookie
password'password'指定 PDF 文档的密码
cMapUrl'./pdfjs-4.3.136-dist/web/cmaps/'指定字符映射的 URL。通常在处理含有中文、日文、韩文等的 PDF 时使用
cMapPackedtrue指定字符映射文件是否是打包压缩的
docBaseUrl'https://example.com/assets/'为 PDF 文档中的相对 URL 提供基准 URL,通常用于处理文档内的资源(如图片)
range{ begin: 0, end: 1024 }指定要加载的 PDF 文档的字节范围。对于处理大型 PDF 文件或部分下载非常有用
verbositypdfjsLib.VerbosityLevel.INFOS设置日志的详细程度
standardFontDataUrl'./pdfjs-4.3.136-dist/web/standard_fonts/'指定标准字体文件的 URL

以上参数只是列举,还有一些参数可以参考源码。

返回值

PDFDocumentLoadingTask

具体用法参考 PDFDocumentLoadingTask

例子:使用 URL 形式导入 PDF

可以是本地路径,也可以是网络资源。注意不要跨域。

const pdfDocumentLoadingTask = pdfjsLib.getDocument({url: './demo.pdf'})
// 可简写为 pdfjsLib.getDocument('./demo.pdf')
console.log('pdfDocumentLoadingTask', pdfDocumentLoadingTask)

例子:使用 TypedArray 二进制数据导入 PDF

async function pdf(data) {
const typedArray = new Uint8Array(data)
const pdfDocumentLoadingTask = pdfjsLib.getDocument({data: typedArray})
// 可简写为 pdfjsLib.getDocument(typedArray)
console.log('pdfDocumentLoadingTask', pdfDocumentLoadingTask)
}

document.getElementById('input').addEventListener('change', event => {
const file = event.target.files[0]
if (file) {
const reader = new FileReader()
reader.onload = async e => {
pdf(e.target.result)
}
reader.readAsArrayBuffer(file)
}
})