{"_id":"@anohanafes/offline-document-viewer","_rev":"2-ce9b28a5510f11f0265b004ab4b13619","name":"@anohanafes/offline-document-viewer","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@anohanafes/offline-document-viewer","version":"1.0.0","keywords":["document-viewer","offline","pdf-viewer","docx-viewer","pptx-viewer","xlsx-viewer","csv-viewer","document-preview","file-viewer","web-viewer","javascript","html5","frontend","static-site","office-viewer","browser-preview"],"author":{"name":"anohanafes","email":"519855937@qq.com"},"license":"MIT","_id":"@anohanafes/offline-document-viewer@1.0.0","maintainers":[{"name":"anohanafes","email":"519855937@qq.com"}],"homepage":"https://github.com/anohanafes/offline-document-viewer#readme","bugs":{"url":"https://github.com/anohanafes/offline-document-viewer/issues"},"dist":{"shasum":"0aba54b6ad7c856fdc4c237a14edcc120a5ef46e","tarball":"https://registry.npmjs.org/@anohanafes/offline-document-viewer/-/offline-document-viewer-1.0.0.tgz","fileCount":22,"integrity":"sha512-ThoKfghlIQV7kaAKNXZ0UjzyneFkdNfdpcxz2DHhdshyCugeD6xclR1UlaKZOZ6Px4135WpDYtEbz368arlFsA==","signatures":[{"sig":"MEYCIQDNeoRMJG1TTOlMOy6srczE9lu4POexTmeTYeBZTIQOYQIhAIvONC8ElWz44VPLUJgufDzVxXMusBKjaWnJUL+6beQx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6994916},"main":"index.html","engines":{"node":">=12.0.0"},"gitHead":"13ebe50a27696b9bfe1588a84f68f3ef3c2c315f","_npmUser":{"name":"anohanafes","email":"519855937@qq.com"},"repository":{"url":"git+https://github.com/anohanafes/offline-document-viewer.git","type":"git"},"_npmVersion":"6.14.18","description":"🔒 完全离线的多格式文档预览器 - 支持PDF、DOCX、PPTX、XLSX、CSV，按需加载，支持URL预览","directories":{"lib":"lib"},"_nodeVersion":"14.21.3","browserslist":["> 1%","last 2 versions","not dead","not ie <= 11"],"_hasShrinkwrap":false,"devDependencies":{"worker-loader":"^3.0.8"},"_npmOperationalInternal":{"tmp":"tmp/offline-document-viewer_1.0.0_1761877188946_0.573898756013858","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@anohanafes/offline-document-viewer","version":"1.0.1","description":"🔒 完全离线的多格式文档预览器 - 支持PDF、DOCX、PPTX、XLSX、CSV，按需加载，支持URL预览","main":"index.html","repository":{"type":"git","url":"git+https://github.com/anohanafes/offline-document-viewer.git"},"bugs":{"url":"https://github.com/anohanafes/offline-document-viewer/issues"},"homepage":"https://github.com/anohanafes/offline-document-viewer#readme","keywords":["document-viewer","offline","pdf-viewer","docx-viewer","pptx-viewer","xlsx-viewer","csv-viewer","document-preview","file-viewer","web-viewer","javascript","html5","frontend","static-site","office-viewer","browser-preview"],"author":{"name":"anohanafes","email":"519855937@qq.com"},"license":"MIT","engines":{"node":">=12.0.0"},"browserslist":["> 1%","last 2 versions","not dead","not ie <= 11"],"directories":{"lib":"lib"},"devDependencies":{"worker-loader":"^3.0.8"},"gitHead":"b3f3311310f23f9ffb03dc5b7bfcc54b8705ea23","_id":"@anohanafes/offline-document-viewer@1.0.1","_nodeVersion":"14.21.3","_npmVersion":"6.14.18","dist":{"integrity":"sha512-0r7eQy6tVozKSOS+6u7rI42Vkw4m6538Uw1zAoMEo2WbfMCgyhJzC1tjEr6fXNJf2TeXSVKZ597rgoS0pKDyUA==","shasum":"751907f96a3396be44b39d12377dd2b71576d697","tarball":"https://registry.npmjs.org/@anohanafes/offline-document-viewer/-/offline-document-viewer-1.0.1.tgz","fileCount":22,"unpackedSize":6995018,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCQHuhfbg9dE/jRBZjGvV9XX3cXeF47DZQuMInW/q8GugIgEQC7fFRK5vwEQI8Eqm5ur+4icQ02xfbZqBv04MNSanU="}]},"_npmUser":{"name":"anohanafes","email":"519855937@qq.com"},"maintainers":[{"name":"anohanafes","email":"519855937@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/offline-document-viewer_1.0.1_1761878429480_0.5670807017271273"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-31T02:19:48.883Z","modified":"2025-10-31T02:40:29.964Z","1.0.0":"2025-10-31T02:19:49.203Z","1.0.1":"2025-10-31T02:40:29.788Z"},"bugs":{"url":"https://github.com/anohanafes/offline-document-viewer/issues"},"author":{"name":"anohanafes","email":"519855937@qq.com"},"license":"MIT","homepage":"https://github.com/anohanafes/offline-document-viewer#readme","keywords":["document-viewer","offline","pdf-viewer","docx-viewer","pptx-viewer","xlsx-viewer","csv-viewer","document-preview","file-viewer","web-viewer","javascript","html5","frontend","static-site","office-viewer","browser-preview"],"repository":{"type":"git","url":"git+https://github.com/anohanafes/offline-document-viewer.git"},"description":"🔒 完全离线的多格式文档预览器 - 支持PDF、DOCX、PPTX、XLSX、CSV，按需加载，支持URL预览","maintainers":[{"name":"anohanafes","email":"519855937@qq.com"}],"readme":"# 📄 离线文档预览器\r\n\r\n<div align=\"center\">\r\n\r\n一个功能完整的多格式文档在线预览解决方案，支持完全离线运行和URL在线预览\r\n\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\r\n[![GitHub stars](https://img.shields.io/github/stars/anohanafes/offline-document-viewer?style=social)](https://github.com/anohanafes/offline-document-viewer/stargazers)\r\n[![npm version](https://img.shields.io/npm/v/@anohanafes/offline-document-viewer.svg)](https://www.npmjs.com/package/@anohanafes/offline-document-viewer)\r\n[![Gitee stars](https://gitee.com/wang-qiuning/offline-document-viewer/badge/star.svg?theme=dark)](https://gitee.com/wang-qiuning/offline-document-viewer/stargazers)\r\n\r\n**🌐 仓库地址**\r\n\r\n[GitHub](https://github.com/anohanafes/offline-document-viewer) | [Gitee](https://gitee.com/wang-qiuning/offline-document-viewer) | [npm](https://www.npmjs.com/package/@anohanafes/offline-document-viewer)\r\n\r\n[📖 使用文档](https://github.com/anohanafes/offline-document-viewer#readme) | [🐛 报告问题](https://github.com/anohanafes/offline-document-viewer/issues)\r\n\r\n</div>\r\n\r\n## ✨ 特性\r\n\r\n- 🔒 **双重模式** - 支持完全离线运行和URL在线预览\r\n- 📄 **全格式支持** - PDF、DOCX、PPTX、XLSX、CSV完整预览\r\n- ⚡ **按需加载** - 智能动态加载，只加载必需资源\r\n- 🎯 **多种预览方式** - 本地文件上传、URL链接、直接嵌入预览\r\n- 📱 **响应式设计** - 完美支持桌面和移动设备\r\n- ⌨️ **键盘快捷键** - 丰富的快捷键操作\r\n- 🚀 **开箱即用** - 无需构建，直接运行\r\n\r\n## 🚀 快速开始\r\n\r\n### 方式一：直接使用（推荐）\r\n\r\n1. **克隆项目**\r\n```bash\r\n# GitHub\r\ngit clone https://github.com/anohanafes/offline-document-viewer.git\r\n# 或 Gitee（国内更快）\r\ngit clone https://gitee.com/wang-qiuning/offline-document-viewer.git\r\n\r\ncd offline-document-viewer\r\n```\r\n\r\n2. **启动服务**\r\n```bash\r\n# Python 3 (推荐)\r\npython -m http.server 8080\r\n\r\n# Node.js \r\nnpx http-server -p 8080 -c-1\r\n\r\n# PHP\r\nphp -S localhost:8080\r\n\r\n# 或使用任何静态文件服务器\r\n```\r\n\r\n3. **访问应用**\r\n```\r\nhttp://localhost:8080/index.html          # 本地文件预览\r\nhttp://localhost:8080/url-viewer.html     # URL文档预览  \r\nhttp://localhost:8080/direct-viewer.html  # 直接预览（嵌入式）\r\n```\r\n\r\n### 方式二：直接打开\r\n双击 `index.html` 文件即可在浏览器中直接使用（部分功能可能受限）\r\n\r\n## 📋 支持的文件格式\r\n\r\n| 格式 | 扩展名 | 功能特性 | 状态 |\r\n|------|--------|----------|------|\r\n| **PDF** | `.pdf` | 完整预览、缩放、翻页、搜索 | ✅ 完全支持 |\r\n| **Word** | `.docx`, `.doc` | HTML转换预览、样式保留、缩放 | ✅ 完全支持 |\r\n| **PowerPoint** | `.pptx`, `.ppt` | 幻灯片预览、样式渲染、导航 | ✅ 完全支持 |\r\n| **Excel** | `.xlsx`, `.xls` | 多工作表、数据预览、JSON导出 | ✅ 完全支持 |\r\n| **CSV** | `.csv` | UTF-8支持、表格显示、数据导出 | ✅ 完全支持 |\r\n\r\n## 🛠️ 技术架构\r\n\r\n### 核心技术栈\r\n- **PDF.js** (Mozilla) - PDF文档渲染引擎\r\n- **Mammoth.js** - DOCX到HTML转换\r\n- **JSZip** - Office文档压缩包解析\r\n- **SheetJS (XLSX)** - Excel文件处理\r\n- **jQuery** - DOM操作和事件处理\r\n\r\n### 自研组件\r\n- **Office-Viewer** - 自研PPTX渲染引擎，支持样式和布局\r\n- **Excel-Viewer** - 自研Excel预览组件，支持多工作表\r\n- **Dynamic Resource Manager** - 智能按需资源加载系统\r\n- **Document Processor Enhancer** - 文档处理增强器\r\n\r\n### 项目结构\r\n```\r\noffline-document-viewer/\r\n├── index.html                    # 🏠 本地文件预览主页\r\n├── url-viewer.html               # 🔗 URL文档预览页面  \r\n├── direct-viewer.html            # 📺 直接预览页面（嵌入式）\r\n├── package.json                  # 📦 项目配置文件\r\n├── README.md                     # 📚 项目说明文档\r\n├── LICENSE                       # ⚖️ 开源许可证\r\n├── .gitignore                    # 🚫 Git忽略文件\r\n├── css/                          # 🎨 样式文件目录\r\n│   ├── styles.css               #     主样式文件\r\n│   ├── pptx-styles.css          #     PPTX专用样式\r\n│   └── excel-styles.css         #     Excel专用样式\r\n├── js/                          # ⚙️ JavaScript逻辑\r\n│   ├── document-viewer.js       #     主应用逻辑\r\n│   ├── resource-manager.js      #     动态资源管理器\r\n│   └── document-processor-enhancer.js  # 文档处理增强器\r\n└── lib/                         # 📚 第三方库文件（已包含）\r\n    ├── jquery.min.js            #     jQuery库\r\n    ├── jszip.min.js             #     ZIP文件处理\r\n    ├── pdf.min.js               #     PDF渲染引擎\r\n    ├── pdf.worker.js            #     PDF处理Worker\r\n    ├── mammoth.min.js           #     DOCX转换器\r\n    ├── xlsx.full.min.js         #     Excel处理库\r\n    ├── office-viewer.js         #     自研PPTX渲染器\r\n    └── excel-viewer.js          #     自研Excel预览器\r\n```\r\n\r\n## 🎮 使用说明\r\n\r\n### 📁 本地文件预览 (`index.html`)\r\n1. **点击选择文件** - 打开文件选择器\r\n2. **选择文档** - 支持PDF、DOCX、PPTX、XLSX、CSV\r\n3. **自动预览** - 文档将自动加载并显示\r\n\r\n### 🔗 URL文档预览 (`url-viewer.html`)\r\n1. **输入文档URL** - 在输入框中粘贴文档链接\r\n2. **点击加载预览** - 自动下载并渲染文档\r\n3. **跨域支持** - 需要目标服务器支持CORS\r\n\r\n**示例URL格式：**\r\n```\r\nurl-viewer.html?url=https://example.com/document.pdf\r\n```\r\n\r\n### 📺 直接预览模式 (`direct-viewer.html`)\r\n**无UI干扰的纯预览模式，适合嵌入到其他系统**\r\n\r\n```html\r\n<!-- 嵌入到您的网页中 -->\r\n<iframe src=\"direct-viewer.html?url=YOUR_DOCUMENT_URL\" \r\n        width=\"100%\" height=\"600px\">\r\n</iframe>\r\n```\r\n\r\n**特点：**\r\n- ✅ 无文件信息面板\r\n- ✅ 浮动控制栏  \r\n- ✅ 全屏沉浸式体验\r\n- ✅ 适合系统集成\r\n\r\n### ⌨️ 键盘快捷键\r\n- `←/→` - PDF翻页 / PPTX切换幻灯片\r\n- `+/-` - 放大/缩小\r\n- `ESC` - 退出全屏模式\r\n- `Space` - PDF下一页\r\n\r\n## 🔧 自定义配置\r\n\r\n### 🎨 界面主题定制\r\n编辑 `css/styles.css` 自定义外观：\r\n\r\n```css\r\n:root {\r\n    --primary-color: #2196F3;\r\n    --secondary-color: #1976D2;\r\n    --background: #f5f5f5;\r\n}\r\n```\r\n\r\n### 📋 按需加载控制\r\n在浏览器控制台中控制预加载行为：\r\n\r\n```javascript\r\n// 禁用智能预加载，完全按需加载\r\nlocalStorage.setItem('documentViewer_disablePreload', 'true');\r\n\r\n// 启用智能预加载\r\nlocalStorage.setItem('documentViewer_disablePreload', 'false');\r\n```\r\n\r\n## 📱 设备兼容性\r\n\r\n### 浏览器支持\r\n- **推荐**: Chrome 90+, Firefox 88+, Safari 14+, Edge 90+\r\n- **移动端**: iOS Safari 14+, Chrome Mobile 90+\r\n- **必需特性**: ES6, Canvas API, File API, Fetch API\r\n\r\n### 性能特点\r\n- **PDF**: 渲染速度最快，大文件支持好\r\n- **DOCX**: 转换速度快，样式保留度高\r\n- **PPTX**: 自研引擎，支持复杂样式和布局\r\n- **Excel**: 支持大型表格，多工作表预览\r\n- **按需加载**: 只加载当前文档类型需要的库\r\n\r\n### 文件大小建议\r\n- **推荐**: < 50MB 获得最佳体验\r\n- **支持**: 理论上无限制，取决于浏览器内存\r\n- **优化**: 启用按需加载，减少初始加载时间\r\n\r\n## 🔒 安全特性\r\n\r\n- ✅ **本地处理优先** - 本地文件完全在浏览器中处理\r\n- ✅ **URL模式透明** - URL预览时文件临时下载，不存储\r\n- ✅ **浏览器沙盒** - 运行在浏览器安全沙盒环境中  \r\n- ✅ **无数据收集** - 不收集、不存储任何用户数据\r\n- ✅ **开源透明** - 所有代码公开，安全可审计\r\n\r\n## 📦 安装\r\n\r\n### NPM 安装\r\n\r\n```bash\r\nnpm install @anohanafes/offline-document-viewer\r\n```\r\n\r\n### 直接使用\r\n\r\n```bash\r\n# 克隆项目\r\n# GitHub\r\ngit clone https://github.com/anohanafes/offline-document-viewer.git\r\n# 或 Gitee（国内更快）\r\ngit clone https://gitee.com/wang-qiuning/offline-document-viewer.git\r\n\r\ncd offline-document-viewer\r\n\r\n# 启动服务\r\npython -m http.server 8080\r\n# 或\r\nnpx http-server -p 8080 -c-1\r\n```\r\n\r\n## 🤝 贡献指南\r\n\r\n欢迎各种形式的贡献！🎉\r\n\r\n### 📝 如何贡献\r\n1. **Fork** 本项目\r\n2. **创建** 特性分支 (`git checkout -b feature/AmazingFeature`)\r\n3. **提交** 更改 (`git commit -m 'Add some AmazingFeature'`)\r\n4. **推送** 到分支 (`git push origin feature/AmazingFeature`)\r\n5. **创建** Pull Request\r\n\r\n### 🐛 报告问题\r\n- GitHub: [提交 Issue](https://github.com/anohanafes/offline-document-viewer/issues)\r\n- Gitee: [提交 Issue](https://gitee.com/wang-qiuning/offline-document-viewer/issues)\r\n- 提供详细的重现步骤\r\n- 包含浏览器版本和操作系统信息\r\n\r\n### 💡 功能建议\r\n- GitHub: [Feature Request](https://github.com/anohanafes/offline-document-viewer/issues/new)\r\n- Gitee: [功能建议](https://gitee.com/wang-qiuning/offline-document-viewer/issues/new)\r\n- 描述期望的功能和使用场景\r\n- 解释为什么这个功能很有用\r\n\r\n## 🌟 项目亮点\r\n\r\n### 🚀 性能优化\r\n- **按需加载** - 只加载当前需要的库，节省带宽和加载时间\r\n- **智能缓存** - 资源加载后缓存，切换文档类型更快\r\n- **渐进增强** - 基础功能优先，高级功能按需启用\r\n\r\n### 🔧 开发友好\r\n- **零配置** - 开箱即用，无需构建工具\r\n- **模块化** - 清晰的代码结构，易于扩展\r\n- **事件驱动** - 灵活的事件系统，支持自定义\r\n\r\n### 🎯 用户体验\r\n- **多模式支持** - 本地上传、URL预览、直接嵌入\r\n- **响应式设计** - 完美适配各种设备屏幕\r\n- **无障碍访问** - 支持键盘导航和屏幕阅读器\r\n\r\n## 🙏 致谢\r\n\r\n感谢以下优秀的开源项目：\r\n- [PDF.js](https://github.com/mozilla/pdf.js) - Mozilla PDF渲染引擎\r\n- [Mammoth.js](https://github.com/mwilliamson/mammoth.js) - DOCX转HTML转换器\r\n- [JSZip](https://github.com/Stuk/jszip) - JavaScript ZIP处理库\r\n- [SheetJS](https://github.com/SheetJS/sheetjs) - Excel文件处理库\r\n- [jQuery](https://github.com/jquery/jquery) - DOM操作库\r\n\r\n## 📄 许可证\r\n\r\nMIT License - 详见 [LICENSE](LICENSE) 文件\r\n\r\n## 📞 联系我们\r\n\r\n- 📧 **邮件联系**: 519855937@qq.com\r\n\r\n---\r\n\r\n<div align=\"center\">\r\n\r\n**⭐ 如果这个项目对您有帮助，请给个Star支持一下！**\r\n\r\nMade with ❤️ by developers, for developers\r\n\r\n</div>\r\n","readmeFilename":"README.md"}