许可
pdfgym由开源库组装,代码发到浏览器干活。大多宽松许可。两个copyleft,各住一条路由。下面按活分组,每个库带许可和去哪读。
读和写
每次操作的两半。阅读器兼核验:每个结果重新打开,报真正落到页上的东西。
图片和字体
PDF页面除文字的一切:JPEG编码器、pdf.js里藏的解码器、TIFF支持、给内嵌字体减肥的字体裁剪。
| 库 | 作用 | 许可 | 来源 |
|---|---|---|---|
| @jsquash/jpeg | 作用在浏览器里跑JPEG编码器。 | 许可Apache-2.0 | 来源全文 |
| mozjpeg, libjpeg-turbo | 作用JPEG编码器本身。 | 许可三个BSD风格许可,含IJG | 来源全文 |
| harfbuzzjs | 作用把内嵌字体裁到文档画的字形。 | 许可MIT | 来源全文 |
| UTIF.js | 作用解码标准和多页TIFF。 | 许可MIT | 来源全文 |
| pako | 作用给UTIF.js解TIFF图片压缩数据。 | 许可MIT和Zlib | 来源全文 |
| OpenJPEG | 作用在pdf.js里解JPEG 2000图片。 | 许可BSD-2-Clause | 来源全文 |
| JBIG2, from PDFium | 作用在pdf.js里解JBIG2图片。 | 许可BSD, The PDFium Authors | 来源全文 |
| qcms | 作用在pdf.js里套ICC颜色配置。 | 许可MIT, Mozilla | 来源全文 |
提示隐私文字
隐私工具提示可能是个人信息的东西。模型和跑它的都在浏览器里发货,提示从不出去。
两个带家规的客人
MuPDF和Ghostscript两个知名PDF引擎是AGPL v3。任一个放网页服务后面,运营者整套服务按同条款公开。
pdfgym两个都不用。
发货的两个copyleft组件各住一条路由。
HEIC解码器只在 HEIC转PDF上选了HEIC或HEIF照片后才拉取。Print preflight分色渲染器只从 打印预检 寻址,跑在自己的worker里。
别的工具不导入不链接这两者。
| 库 | 作用 | 许可 | 来源 |
|---|---|---|---|
| @discourse/heic | 作用只在HEIC转PDF路由加载HEIC解码器。 | 许可Apache-2.0 | 来源全文 |
| libheif 1.19.7 | 作用在路由内解码器里读HEIC容器。 | 许可LGPL-3.0-or-later | 来源确切来源 |
| libde265 1.0.15 | 作用在路由内解码器里解HEVC图像。 | 许可LGPL-3.0-or-later | 来源确切来源 |
| Poppler 26.02.0 | 作用给打印预检渲染分色版,在自己的worker里。 | 许可GPL-2.0-or-later | 来源全文 |
| OpenJPEG 2.5.3 | 作用在同一个worker里解JPEG 2000图片。 | 许可BSD-2-Clause | 来源全文 |
两者都用发布的上游代码,一处不改。
打印预检构建可从公开源码复现: 源码记录 点名确切的Poppler和OpenJPEG包及SHA-256、Emscripten镜像digest,以及产出WebAssembly的适配器和构建脚本。
常被问到
- 代码能拿去自己的项目吗?
- 每个库保留自己的许可,上面带全文。宽松许可(MIT、BSD、Apache-2.0)署名可用;LGPL解码器和GPL渲染器按文本尽copyleft义务。
- copyleft部分为什么圈在单路由?
- 义务小而可验。HEIC解码器只在读HEIC照片处加载,Poppler worker只听打印预检。别的都不导入不链接这两者。
- 库改过吗?
- 没有。按上游发布发货,所以上面版本号源码记录精确。社区修复下次更新到,不养私人分支。
- 网站自己的代码在哪儿?
- 把库串起来的工具——工作区、检查、页面——是项目自己的活。重活库按上面条款干,拒坏下载的核验是我们的。