docs: 更新README和index.html,添加NGINX配置和浏览器兼容性说明
更新了README.md文件,增加了NGINX配置示例、浏览器兼容性说明、隐私说明和致谢部分。同时,修改了index.html文件,添加了favicon图标并调整了JS文件的加载顺序,确保FileSaver.js先加载。
This commit is contained in:
parent
85142d373e
commit
578a412bdd
1
Pdf.svg
Normal file
1
Pdf.svg
Normal file
@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1744485933115" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2684" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M901.850593 926.476283a48.761858 48.761858 0 0 1-48.761859 48.761859H170.422718a48.761858 48.761858 0 0 1-48.761858-48.761859V48.762834a48.761858 48.761858 0 0 1 48.761858-48.761859h418.864363a48.761858 48.761858 0 0 1 34.620919 14.140939l263.801654 263.801654a48.761858 48.761858 0 0 1 14.140939 34.620919V926.476283z" fill="#EBECF0" p-id="2685"></path><path d="M901.850593 926.476283v48.761859a48.761858 48.761858 0 0 1-48.761859 48.761858H170.422718a48.761858 48.761858 0 0 1-48.761858-48.761858v-48.761859a48.761858 48.761858 0 0 0 48.761858 48.761859h682.666016a48.761858 48.761858 0 0 0 48.761859-48.761859z" fill="#C1C7D0" p-id="2686"></path><path d="M24.137143 536.381417h975.237166v243.809291a48.761858 48.761858 0 0 1-48.761858 48.761859H72.899001a48.761858 48.761858 0 0 1-48.761858-48.761859v-243.809291z" fill="#FF5630" p-id="2687"></path><path d="M121.66086 536.381417V438.8577l-97.523717 97.523717h97.523717zM901.850593 536.381417l0.975237-97.523717 97.036098 97.523717H901.850593z" fill="#DE350B" p-id="2688"></path><path d="M267.946434 585.143275h84.845634a57.051374 57.051374 0 0 1 41.935198 15.603795 55.1009 55.1009 0 0 1 16.091413 40.959961 55.588518 55.588518 0 0 1-16.091413 40.959961 59.001849 59.001849 0 0 1-43.398054 16.091413h-48.761858v76.556118H267.946434z m32.670446 81.919922h43.885672a42.422817 42.422817 0 0 0 25.843785-6.339041 23.893311 23.893311 0 0 0 7.801897-19.992362q0-24.868548-32.670445-24.868548h-44.860909zM434.71199 588.068987H511.755726a73.142787 73.142787 0 0 1 58.51423 25.356166 100.937047 100.937047 0 0 1 21.942836 68.266602 110.689418 110.689418 0 0 1-20.967599 69.729457A71.679932 71.679932 0 0 1 511.755726 780.190708H434.71199z m32.670445 158.963658H511.755726a43.398054 43.398054 0 0 0 36.083775-17.066651A75.093262 75.093262 0 0 0 560.517584 682.666992a70.704695 70.704695 0 0 0-13.65332-48.761859 48.761858 48.761858 0 0 0-37.546631-16.579031h-41.935198zM755.565018 618.788957h-100.937047v45.348529H755.565018v31.207589h-100.937047v81.919922h-32.670445v-190.171248H755.565018z" fill="#FFFFFF" p-id="2689"></path><path d="M901.850593 312.564487v6.82666h-263.801654a48.761858 48.761858 0 0 1-48.761858-48.761858V0.000975a48.761858 48.761858 0 0 1 34.620919 14.140939l264.289272 263.801654a48.761858 48.761858 0 0 1 13.653321 34.620919z" fill="#C1C7D0" p-id="2690"></path></svg>
|
After Width: | Height: | Size: 2.6 KiB |
39
README.md
39
README.md
@ -36,6 +36,41 @@
|
||||
3. [jszip.min.js](https://cdn.jsdelivr.net/npm/jszip@3.10.1/dist/jszip.min.js) - 用于创建ZIP文件
|
||||
4. [FileSaver.min.js](https://cdn.jsdelivr.net/npm/file-saver@2.0.5/dist/FileSaver.min.js) - 用于保存文件
|
||||
|
||||
### NGINX 配置示例
|
||||
|
||||
如果使用 NGINX 服务器,可以添加以下配置以支持 `.mjs` 文件:
|
||||
|
||||
```
|
||||
nginx
|
||||
types {
|
||||
# 其他 MIME 类型...
|
||||
text/javascript mjs;
|
||||
}
|
||||
```
|
||||
## 浏览器兼容性
|
||||
|
||||
本工具支持所有现代浏览器,包括:
|
||||
|
||||
- Chrome 60+
|
||||
- Firefox 60+
|
||||
- Safari 11+
|
||||
- Edge 79+
|
||||
|
||||
## 隐私说明
|
||||
|
||||
- 所有文件处理均在本地浏览器中完成
|
||||
- 不会将您的 PDF 文件或生成的图片上传到任何服务器
|
||||
- 不会收集任何个人信息或使用情况数据
|
||||
|
||||
## 致谢
|
||||
|
||||
- PDF.js
|
||||
- JSZip
|
||||
- FileSaver.js
|
||||
- Bootstrap
|
||||
|
||||
本项目基于原始的PDF转图片工具进行了重构和改进,感谢[原项目](https://github.com/xxlllq/pdf2img)开发者提供的基础功能和灵感。
|
||||
|
||||
## 技术栈
|
||||
|
||||
- HTML5 / CSS3
|
||||
@ -46,10 +81,6 @@
|
||||
- [Bootstrap 5](https://getbootstrap.com/) - 用于UI组件和响应式设计
|
||||
- [Bootstrap Icons](https://icons.getbootstrap.com/) - 图标库
|
||||
|
||||
## 致谢
|
||||
|
||||
本项目基于原始的PDF转图片工具进行了重构和改进,感谢原项目的开发者提供的基础功能和灵感。
|
||||
|
||||
## 许可证
|
||||
|
||||
本项目采用MIT许可证,详情请查看[LICENSE](LICENSE)文件。
|
3
cssjs/js/FileSaver.min.js
vendored
Normal file
3
cssjs/js/FileSaver.min.js
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
(function(a,b){if("function"==typeof define&&define.amd)define([],b);else if("undefined"!=typeof exports)b();else{b(),a.FileSaver={exports:{}}.exports}})(this,function(){"use strict";function b(a,b){return"undefined"==typeof b?b={autoBom:!1}:"object"!=typeof b&&(console.warn("Deprecated: Expected third argument to be a object"),b={autoBom:!b}),b.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a.type)?new Blob(["\uFEFF",a],{type:a.type}):a}function c(a,b,c){var d=new XMLHttpRequest;d.open("GET",a),d.responseType="blob",d.onload=function(){g(d.response,b,c)},d.onerror=function(){console.error("could not download file")},d.send()}function d(a){var b=new XMLHttpRequest;b.open("HEAD",a,!1);try{b.send()}catch(a){}return 200<=b.status&&299>=b.status}function e(a){try{a.dispatchEvent(new MouseEvent("click"))}catch(c){var b=document.createEvent("MouseEvents");b.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),a.dispatchEvent(b)}}var f="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof global&&global.global===global?global:void 0,a=f.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),g=f.saveAs||("object"!=typeof window||window!==f?function(){}:"download"in HTMLAnchorElement.prototype&&!a?function(b,g,h){var i=f.URL||f.webkitURL,j=document.createElement("a");g=g||b.name||"download",j.download=g,j.rel="noopener","string"==typeof b?(j.href=b,j.origin===location.origin?e(j):d(j.href)?c(b,g,h):e(j,j.target="_blank")):(j.href=i.createObjectURL(b),setTimeout(function(){i.revokeObjectURL(j.href)},4E4),setTimeout(function(){e(j)},0))}:"msSaveOrOpenBlob"in navigator?function(f,g,h){if(g=g||f.name||"download","string"!=typeof f)navigator.msSaveOrOpenBlob(b(f,h),g);else if(d(f))c(f,g,h);else{var i=document.createElement("a");i.href=f,i.target="_blank",setTimeout(function(){e(i)})}}:function(b,d,e,g){if(g=g||open("","_blank"),g&&(g.document.title=g.document.body.innerText="downloading..."),"string"==typeof b)return c(b,d,e);var h="application/octet-stream"===b.type,i=/constructor/i.test(f.HTMLElement)||f.safari,j=/CriOS\/[\d]+/.test(navigator.userAgent);if((j||h&&i||a)&&"undefined"!=typeof FileReader){var k=new FileReader;k.onloadend=function(){var a=k.result;a=j?a:a.replace(/^data:[^;]*;/,"data:attachment/file;"),g?g.location.href=a:location=a,g=null},k.readAsDataURL(b)}else{var l=f.URL||f.webkitURL,m=l.createObjectURL(b);g?g.location=m:location.href=m,g=null,setTimeout(function(){l.revokeObjectURL(m)},4E4)}});f.saveAs=g.saveAs=g,"undefined"!=typeof module&&(module.exports=g)});
|
||||
|
||||
//# sourceMappingURL=FileSaver.min.js.map
|
13
cssjs/js/jszip.min.js
vendored
Normal file
13
cssjs/js/jszip.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@ -1,5 +1,9 @@
|
||||
// 导入依赖库
|
||||
import * as pdfjsLib from './pdf.mjs';
|
||||
import JSZip from './jszip.min.js';
|
||||
|
||||
// 设置PDF.js worker路径
|
||||
pdfjsLib.GlobalWorkerOptions.workerSrc = 'cssjs/js/pdf.worker.js';
|
||||
pdfjsLib.GlobalWorkerOptions.workerSrc = 'cssjs/js/pdf.worker.mjs';
|
||||
|
||||
// 全局变量
|
||||
let pdfDocument = null;
|
||||
@ -25,12 +29,6 @@ const pdfPagesValue = document.getElementById('pdf-pages-value');
|
||||
|
||||
// 事件监听器
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
// 检查PDF.js是否正确加载
|
||||
if (typeof pdfjsLib === 'undefined') {
|
||||
alert('PDF.js库加载失败,请确保pdf.js文件已正确放置');
|
||||
return;
|
||||
}
|
||||
|
||||
// 初始化事件监听
|
||||
initEventListeners();
|
||||
});
|
||||
@ -67,6 +65,9 @@ function initEventListeners() {
|
||||
});
|
||||
}
|
||||
|
||||
// 其余函数保持不变
|
||||
// ...
|
||||
|
||||
// 处理文件选择
|
||||
function handleFileSelect(e) {
|
||||
const file = pdfFileInput.files[0];
|
||||
@ -345,6 +346,7 @@ function exportMultipleImages(scale) {
|
||||
|
||||
// 如果所有页面都已处理,生成并下载zip
|
||||
if (processedCount === renderedPages.length) {
|
||||
// 生成并下载zip文件
|
||||
zip.generateAsync({ type: 'blob' }).then(content => {
|
||||
saveAs(content, `${pdfFile.name.replace('.pdf', '')}_images.zip`);
|
||||
loadingContainer.style.display = 'none';
|
||||
|
22734
cssjs/js/pdf.mjs
Normal file
22734
cssjs/js/pdf.mjs
Normal file
File diff suppressed because it is too large
Load Diff
57476
cssjs/js/pdf.worker.mjs
Normal file
57476
cssjs/js/pdf.worker.mjs
Normal file
File diff suppressed because one or more lines are too long
12
index.html
12
index.html
@ -8,6 +8,9 @@
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" />
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.0/font/bootstrap-icons.css">
|
||||
<link rel="stylesheet" href="cssjs/css/style.css" />
|
||||
<link rel="shortcut icon" href="Pdf.svg">
|
||||
<!-- 先加载 FileSaver.js -->
|
||||
<script src="cssjs/js/FileSaver.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@ -81,14 +84,11 @@
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<p>© 2025 PDF转图片工具 | <a href="https://github.com/xxlllq/pdf2img" target="_blank">GitHub</a></p>
|
||||
<p>© 2025 PDF转图片工具 | <a href="https://ckk.photo8.site/Photo8/pdf2img" target="_blank">GitHub</a></p>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<!-- 使用本地JS文件 -->
|
||||
<script src="cssjs/js/pdf.js"></script>
|
||||
<script src="cssjs/js/jszip.min.js"></script>
|
||||
<script src="cssjs/js/FileSaver.min.js"></script>
|
||||
<script src="cssjs/js/main.js"></script>
|
||||
<!-- 使用本地JS文件,注意type="module"属性 -->
|
||||
<script type="module" src="cssjs/js/main.js"></script>
|
||||
</body>
|
||||
</html>
|
Reference in New Issue
Block a user