本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

PDF.js是一个基于HTML5构建的可移植文档格式(PDF)查看器,由Mozilla主导并由社区驱动开发。本Docker镜像封装了PDF.js的核心功能,提供了便捷的部署方式,可快速集成到Web应用、本地开发环境或演示系统中,实现PDF文件的解析与渲染。
async/await、ReadableStream等现代JavaScript特性docker pull pdfjs-viewer:latest # 或指定版本(如legacy版) docker pull pdfjs-viewer:legacy
docker run快速启动现代浏览器版本:
docker run -d \ --name pdfjs-viewer \ -p 8080:80 \ -v /path/to/your/pdfs:/usr/share/nginx/html/pdfs \ pdfjs-viewer:latest
访问 http://localhost:8080/web/viewer.html 即可打开查看器,通过URL参数加载PDF文件:
http://localhost:8080/web/viewer.html?file=/pdfs/your-document.pdf
旧版浏览器兼容版本:
docker run -d \ --name pdfjs-viewer-legacy \ -p 8081:80 \ pdfjs-viewer:legacy
访问 http://localhost:8081/legacy/web/viewer.html 使用旧版查看器。
创建docker-compose.yml:
version: '3.8' services: pdfjs: image: pdfjs-viewer:latest container_name: pdfjs-viewer ports: - "8080:80" volumes: - ./pdfs:/usr/share/nginx/html/pdfs # 挂载本地PDF文件目录 - ./custom-viewer:/usr/share/nginx/html/web # 自定义查看器界面(可选) environment: - PORT=80 - VIEWER_PATH=/web/viewer.html restart: unless-stopped
启动服务:
docker-compose up -d
| 环境变量 | 描述 | 默认值 |
|---|---|---|
PORT | 容器内部服务端口 | 80 |
VIEWER_PATH | 查看器入口文件路径 | /web/viewer.html |
LEGACY_MODE | 是否启用旧版浏览器兼容模式 | false(latest镜像) |
CORS_ALLOWED | 允许跨域访问的源(以逗号分隔) | * |
-v /local/path:/usr/share/nginx/html/pdfs 挂载本地目录,可在查看器中通过?file=/pdfs/filename.pdf访问web目录(包含viewer.html等文件)到/usr/share/nginx/html/web,实现界面定制通过API在自定义Web应用中集成PDF.js(需在应用中引入容器内的pdf.js资源):
<!-- 在你的Web页面中引入PDF.js --> <script src="http://localhost:8080/build/pdf.js"></script> <script> // 初始化PDF查看器 async function renderPDF(url) { const pdfjsLib = window['pdfjs-dist/build/pdf']; pdfjsLib.GlobalWorkerOptions.workerSrc = 'http://localhost:8080/build/pdf.worker.js'; const pdfDoc = await pdfjsLib.getDocument(url).promise; console.log(`PDF加载完成,共${pdfDoc.numPages}页`); // 渲染第一页 const page = await pdfDoc.getPage(1); const viewport = page.getViewport({ scale: 1.5 }); const canvas = document.getElementById('pdfCanvas'); const context = canvas.getContext('2d'); canvas.height = viewport.height; canvas.width = viewport.width; await page.render({ canvasContext: context, viewport: viewport }).promise; } // 加载PDF文件 renderPDF('/pdfs/sample.pdf'); </script> <canvas id="pdfCanvas"></canvas>
如需基于最新代码构建镜像,可按以下步骤操作:
git clone [***] cd pdf.js
Dockerfile:FROM node:18-alpine AS builder WORKDIR /app COPY . . RUN npm install -g gulp-cli && npm install && gulp generic FROM nginx:alpine COPY --from=builder /app/build/generic /usr/share/nginx/html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
docker build -t custom-pdfjs-viewer .
A: 确保PDF文件已挂载到容器的/usr/share/nginx/html/pdfs目录,并通过正确URL访问:viewer.html?file=/pdfs/filename.pdf
A: 使用legacy标签镜像,并访问/legacy/web/viewer.html
A: 挂载包含自定义viewer.html和相关资源的目录到/usr/share/nginx/html/web
http://<容器IP>:<端口>/web/viewer.htmlhttp://<容器IP>:<端口>/legacy/web/viewer.html免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429