Licenses

What this is built from

A handful of open-source libraries do the real work. Their license texts are served from this site, not linked to somebody else's copy.

Open-source libraries used by these tools
LibraryVersionLicense
pdf.js (pdfjs-dist)6.2.108Apache-2.0
@cantoo/pdf-lib2.8.1MIT
docx9.7.1MIT
jsPDF4.2.1MIT
fflate0.8.3MIT
tesseract.js6.0.1Apache-2.0
PaddleOCR.js SDK0.4.2Apache-2.0
PP-OCRv6 and PP-OCRv5 modelsPaddleOCR 3.5Apache-2.0
ONNX Runtime Web1.30.0MIT
OpenCV.js4.10.0Apache-2.0
Clipper6.4.2BSL-1.0
js-yaml4.3.2MIT
transformers.js (@huggingface/transformers)4.2.0Apache-2.0
GLM-OCR model (onnx-community conversion)aea46198f09eMIT
GlyphLessFonttesseract 5Apache-2.0
rusty_mp30.1.1Apache-2.0
qrcode-generator2.0.4MIT
JsBarcode (encoders)3.12.3MIT

What each one does here

pdf.js (pdfjs-dist)
Reads PDFs, renders pages and extracts the text layer.
@cantoo/pdf-lib
Creates, combines, compresses and encrypts the PDF files these tools produce.
docx
Writes the Word (.docx) files the PDF to Word tool produces.
jsPDF
Typesets the PDF the HTML to PDF tool produces.
fflate
Compresses and decompresses the ZIP archives the archive tools make and open.
tesseract.js
No longer used by any tool: the reader below replaced it in wave 6. Its files remain published until they are removed, so its licence remains here.
PaddleOCR.js SDK
Runs the PP-OCR text detector and recogniser in this tab: finds every line in a picture and reads it.
PP-OCRv6 and PP-OCRv5 models
The neural networks the reader runs: the PP-OCRv6 tiny detector and recogniser, and the PP-OCRv5 East-Slavic recogniser for Cyrillic.
ONNX Runtime Web
Executes the reader's models, on the graphics card through WebGPU where the browser offers one and on one CPU thread where it does not.
OpenCV.js
Prepares pictures for the detector and turns its output into line boxes; bundled inside the PaddleOCR.js SDK.
Clipper
Grows the detector's line polygons to their true extent; bundled inside the PaddleOCR.js SDK.
js-yaml
Reads the models' configuration files; bundled inside the PaddleOCR.js SDK.
transformers.js (@huggingface/transformers)
Runs the Deep reader's model, GLM-OCR, in this tab: loads its weights, prepares the picture and generates the answer.
GLM-OCR model (onnx-community conversion)
The Deep reader's weights: a 0.9-billion-parameter vision-language model, not served from this site but downloaded from Hugging Face behind the Pro door, pinned to one revision and checked against digests this site carries.
GlyphLessFont
The 572-byte font with one blank glyph that carries the invisible text layer of a searchable PDF.
rusty_mp3
Encodes and decodes MP3 audio. Written in Rust and compiled to WebAssembly; the source and the one patch applied to it are in the repository.
qrcode-generator
Encodes the content of a QR code into its module pattern. The picture itself is drawn by this site.
JsBarcode (encoders)
Turns a value into the bar pattern of a Code 128, EAN-13 or UPC-A symbol. Only the encoder classes are shipped; the picture is drawn by this site.

Copyright

pdf.js is © Mozilla Foundation and contributors, used under the Apache License 2.0. @cantoo/pdf-lib is © Andrew Dillon and contributors, docx is © Dolan Miu and contributors, jsPDF is © James Hall, yWorks GmbH and contributors, ONNX Runtime is © Microsoft Corporation and js-yaml is © Vitaly Puzrin, all used under the MIT License. PaddleOCR.js, the PP-OCR models and OpenCV are © the PaddlePaddle Authors and the OpenCV team under the Apache License 2.0, the GlyphLessFont is © Google Inc. and the Tesseract authors under the same licence, transformers.js is © Hugging Face under the Apache License 2.0, the GLM-OCR model is © Zhipu AI and its ONNX conversion © the onnx-community under the MIT License, and Clipper is © Angus Johnson under the Boost Software License. Every one of those licenses permits this use and requires the notices to travel with the software, which is why they are published here.

Libraries deliberately not used

Several well-known PDF tools are published under the GNU GPL or AGPL. Those are good licenses and the wrong ones for this site, so none of them are used, and none of their code is present in what your browser downloads.