许可

pdfgym由开源库组装,代码发到浏览器干活。大多宽松许可。两个copyleft,各住一条路由。下面按活分组,每个库带许可和去哪读。

读和写

每次操作的两半。阅读器兼核验:每个结果重新打开,报真正落到页上的东西。

作用许可来源
pdf.js 作用读渲染PDF,每个结果必验。 许可Apache-2.0 来源全文
@cantoo/pdf-lib 作用写PDF。 许可MIT 来源全文

图片和字体

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 来源全文

提示隐私文字

隐私工具提示可能是个人信息的东西。模型和跑它的都在浏览器里发货,提示从不出去。

作用许可来源
Google BERT Mini 作用隐私提示用的四层基础模型。 许可Apache-2.0 来源源码记录
ONNX Runtime Web 1.29.0 作用在浏览器worker里跑识别器。 许可MIT 来源全文

两个带家规的客人

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只听打印预检。别的都不导入不链接这两者。
库改过吗?
没有。按上游发布发货,所以上面版本号源码记录精确。社区修复下次更新到,不养私人分支。
网站自己的代码在哪儿?
把库串起来的工具——工作区、检查、页面——是项目自己的活。重活库按上面条款干,拒坏下载的核验是我们的。

接下来去哪里