SafeShrink 第三方开源组件许可证声明
=====================================

SafeShrink 软件本体为专有软件，受知识产权保护。

---

SafeShrink 许可证
-----------------
- 软件名称: SafeShrink（密小件）
- 许可证类型: 专有软件（Proprietary Software）
- 版权所有: 杭州金蛙信息科技有限公司
- 说明: SafeShrink 软件本体受专有许可证保护，仅授权使用，禁止逆向工程、分发或商业授权。

SafeShrink 使用了以下开源软件组件，特此声明并感谢这些项目的贡献。

---

GUI 框架
--------
PySide6 6.11.1
- 许可证: GNU Lesser General Public License v3 (LGPL-3.0)
- 版权所有: Qt Company
- 用途: 图形用户界面
- 说明: 动态链接使用，未修改源码
- 项目地址: https://code.qt.io/cgit/pyside/pyside-setup.git

---

PDF 处理
--------
PyMuPDF (fitz) 1.27.2.3
- 许可证: GNU Affero General Public License v3 (AGPL-3.0) 或 Artifex 商业授权（双许可）
- 版权所有: Artifex Software Inc.
- 用途: PDF 扫描件 OCR 渲染、文本层检测
- 说明: 【⚠️ 许可风险】AGPL-3.0 要求网络服务也开源。SafeShrink 为纯桌面应用，不涉及网络服务分发，不触发 AGPL 的"网络使用"条款。PyMuPDF 仅作为可选辅助功能使用（PDF 页数检测、扫描件文本层检测、逐页 OCR 渲染），非核心依赖。用户可选择仅使用 pdfplumber/pypdf 处理 PDF。
- 项目地址: https://github.com/pymupdf/PyMuPDF

pdfplumber 0.11.9
- 许可证: MIT License
- 版权所有: Jeremy Singer-Vine
- 用途: PDF 文本提取、表格提取
- 依赖: pypdfium2（BSD-3-Clause/Apache-2.0）— PDFium 渲染引擎
- 项目地址: https://github.com/jsvine/pdfplumber

pypdf 6.12.1
- 许可证: BSD 3-Clause License
- 版权所有: Mathieu Fenniak
- 用途: PDF 读取、元数据清理
- 项目地址: https://github.com/py-pdf/pypdf

pdfminer.six 20251230
- 许可证: MIT License
- 版权所有: Yusuke Shinyama, pdfminer.six team
- 用途: PDF 文本提取（备选方案）
- 项目地址: https://github.com/pdfminer/pdfminer.six

---

Office 文档处理
---------------
python-docx 1.2.0
- 许可证: MIT License
- 版权所有: Mike MacCana
- 用途: Word .docx 文档处理
- 项目地址: https://github.com/python-docx/python-docx

openpyxl 3.1.5
- 许可证: MIT License
- 版权所有: Eric Gazoni, Charlie Clark
- 用途: Excel .xlsx 文档处理
- 项目地址: https://foss.heptapod.net/openpyxl/openpyxl

python-pptx 1.0.2
- 许可证: MIT License
- 版权所有: Steve Canny
- 用途: PowerPoint .pptx 文档处理
- 项目地址: https://github.com/scanny/python-pptx

xlrd 2.0.2
- 许可证: BSD 3-Clause License
- 版权所有: Kevin John Schwartz
- 用途: Excel .xls 旧格式读取
- 项目地址: https://github.com/python-excel/xlrd

xlsxwriter 3.2.9
- 许可证: BSD 2-Clause License
- 版权所有: John McNamara
- 用途: Excel .xlsx 写入（python-pptx 依赖）
- 说明: python-pptx 内部依赖 xlsxwriter 用于部分写入场景
- 项目地址: https://github.com/jmcnamara/XlsxWriter

mammoth 1.11.0
- 许可证: MIT License
- 版权所有: Michael Williamson
- 用途: .doc 旧格式降级读取
- 依赖: cobble（MIT）— 辅助工具
- 项目地址: https://github.com/mwilliamson/python-mammoth

cobble 0.1.4
- 许可证: MIT License
- 用途: mammoth 依赖
- 项目地址: https://github.com/mwilliamson/cobble

---

文档转 Markdown/SSD
-------------------
MarkItDown 0.1.5
- 许可证: MIT License
- 版权所有: Microsoft
- 用途: 多格式文档（docx/xlsx/pptx/pdf/html/md）转 Markdown
- 说明: SafeShrink 核心转换引擎，用于 SSD 模式
- 项目地址: https://github.com/microsoft/markitdown
- 依赖链: markitdown → magika（Apache-2.0）→ onnxruntime（MIT）→ numpy（BSD-3-Clause）、protobuf（BSD-3-Clause）

magika 0.6.3
- 许可证: Apache License 2.0
- 版权所有: Google LLC
- 用途: 文件类型智能检测（markitdown 依赖）
- 项目地址: https://github.com/google/magika

onnxruntime 1.20.1
- 许可证: MIT License
- 版权所有: Microsoft
- 用途: 机器学习推理引擎（magika 模型运行）
- 项目地址: https://github.com/microsoft/onnxruntime

---

图像处理
--------
Pillow 12.2.0
- 许可证: Historical Permission Notice and Disclaimer (HPND)
- 版权所有: Jeffrey A. Clark (Alex)
- 用途: 图片压缩、格式转换
- 项目地址: https://github.com/python-pillow/Pillow

---

编码检测
--------
charset-normalizer 3.4.7
- 许可证: MIT License
- 版权所有: Ahmed TAHRI
- 用途: 字符编码检测（chardet 的替代方案）
- 项目地址: https://github.com/Ousret/charset-normalizer

---

HTML/XML 处理
-------------
beautifulsoup4 4.14.3
- 许可证: MIT License
- 版权所有: Leonard Richardson
- 用途: HTML 解析
- 依赖: soupsieve（MIT）— CSS 选择器
- 项目地址: https://www.crummy.com/software/BeautifulSoup/

soupsieve 2.8.3
- 许可证: MIT License
- 用途: beautifulsoup4 CSS 选择器依赖

lxml 6.1.0
- 许可证: BSD 3-Clause License
- 版权所有: lxml dev team
- 用途: HTML/XML 解析
- 项目地址: https://lxml.de/

defusedxml 0.7.1
- 许可证: Python Software Foundation License
- 版权所有: Christian Heimes
- 用途: 安全 XML 解析（防止 XXE 攻击）
- 项目地址: https://github.com/tiran/defusedxml

---

其他工具库
----------
requests 2.34.2
- 许可证: Apache License 2.0
- 版权所有: Kenneth Reitz
- 用途: HTTP 请求
- 依赖: certifi（Mozilla 公共证书包）、charset-normalizer、idna、urllib3
- 项目地址: https://github.com/psf/requests

click 8.4.0
- 许可证: BSD 3-Clause License
- 版权所有: Armin Ronacher
- 用途: 命令行接口
- 项目地址: https://github.com/pallets/click

tqdm
- 许可证: MIT / MPL-2.0
- 说明: 【已废弃】当前版本未使用

---

构建工具
--------
PyInstaller 6.20.0
- 许可证: GPL-2.0（构建工具，不随软件分发）
- 用途: Python 打包为 EXE
- 说明: 仅用于构建阶段，不随 SafeShrink EXE 分发
- 项目地址: https://github.com/pyinstaller/pyinstaller

Nuitka 4.1
- 许可证: Apache License 2.0
- 用途: Python 编译为 C（备选构建方案）
- 项目地址: https://github.com/Nuitka/Nuitka

Cython 3.2.4
- 许可证: Apache License 2.0
- 用途: Python C 扩展编译
- 项目地址: https://cython.org/

---

许可证全文获取
--------------
各许可证全文可通过以下链接获取：
- Apache License 2.0: https://www.apache.org/licenses/LICENSE-2.0
- AGPL-3.0: https://www.gnu.org/licenses/agpl-3.0.txt
- LGPL-3.0: https://www.gnu.org/licenses/lgpl-3.0.txt
- BSD 3-Clause: https://opensource.org/licenses/BSD-3-Clause
- BSD 2-Clause: https://opensource.org/licenses/BSD-2-Clause
- MIT: https://opensource.org/licenses/MIT
- MPL-2.0: https://www.mozilla.org/MPL/2.0/
- HPND: https://opensource.org/licenses/HPND
- PSF: https://opensource.org/licenses/Python-2.0

---

开源组件使用合规性说明
-----------------------

SafeShrink 严格遵循各开源组件的许可证条款，以下说明旨在透明披露组件使用方式。

### PyMuPDF (AGPL-3.0)

PyMuPDF 采用 AGPL-3.0 许可，该许可适用于通过网络提供服务的应用场景。SafeShrink 为纯桌面应用，所有处理均在用户本地完成，不涉及网络服务、API 接口或云端部署，因此不触发 AGPL 的开源义务。

在实际使用中，PyMuPDF 仅作为 PDF 处理的可选项之一（用于扫描件 OCR 渲染和文本层检测），用户也可选择仅使用 pdfplumber 或 pypdf 处理 PDF 文件。SafeShrink 未修改 PyMuPDF 源码，仅通过标准 import 调用其公开 API。

### PySide6 (LGPL-3.0)

PySide6 采用 LGPL-3.0 许可，该许可允许动态链接使用。SafeShrink 未修改 PySide6 源码，以动态链接方式调用，符合 LGPL 要求。用户可在 onedir 打包模式下独立替换 PySide6 组件。

### xlsxwriter (BSD-2-Clause)

xlsxwriter 采用 BSD-2-Clause 许可，属于宽松型开源许可证，允许商业使用、修改和分发。在 SafeShrink 中，xlsxwriter 作为 python-pptx 的间接依赖存在，SafeShrink 不直接调用其 API。

---

声明
----
SafeShrink 尊重开源精神，感谢以上项目及所有贡献者的辛勤工作。
本软件对第三方库的使用符合其 respective 许可证条款。

SafeShrink 软件本体为专有软件，不属于开源软件。

如有疑问，请联系: 261125202@qq.com
