Licences
pdfmonks is assembled from open-source libraries and sends their code to your browser to do the work. Most are permissively licensed. Two are copyleft, and each of those lives on exactly one route. Below, every library is grouped by the job it does, with its licence and where to read it.
Read and write
The two halves of every operation. The reader is also the checker: it opens each result again and reports what actually reached the page.
Pictures and fonts
Everything a PDF page is made of besides text: the JPEG encoder, the decoders hiding inside pdf.js, TIFF support, and the font cutter that keeps embedded fonts small.
| Library | Role here | Licence | Source |
|---|---|---|---|
| @jsquash/jpeg | Role hereRuns the JPEG encoder in the browser. | LicenceApache-2.0 | SourceFull text |
| mozjpeg, libjpeg-turbo | Role hereThe JPEG encoder itself. | LicenceThree BSD-style licences, IJG included | SourceFull text |
| harfbuzzjs | Role hereCuts embedded fonts down to the glyphs a document draws. | LicenceMIT | SourceFull text |
| UTIF.js | Role hereDecodes standard and multi-page TIFF files. | LicenceMIT | SourceFull text |
| pako | Role hereInflates compressed TIFF image data for UTIF.js. | LicenceMIT and Zlib | SourceFull text |
| OpenJPEG | Role hereDecodes JPEG 2000 images inside pdf.js. | LicenceBSD-2-Clause | SourceFull text |
| JBIG2, from PDFium | Role hereDecodes JBIG2 images inside pdf.js. | LicenceBSD, The PDFium Authors | SourceFull text |
| qcms | Role hereApplies ICC colour profiles inside pdf.js. | LicenceMIT, Mozilla | SourceFull text |
Suggesting private text
The privacy tools suggest what might be personal information. The model and its runner both ship to the browser; the suggestions never leave it.
| Library | Role here | Licence | Source |
|---|---|---|---|
| Google BERT Mini | Role hereFour-layer base model for private-information suggestions. | LicenceApache-2.0 | SourceSource record |
| ONNX Runtime Web 1.29.0 | Role hereRuns that detector in a browser worker. | LicenceMIT | SourceFull text |
Two guests with house rules
Two well-known PDF engines, MuPDF and Ghostscript, are AGPL v3. Running either one behind a web service obliges the operator to publish the whole service under the same terms.
pdfmonks uses neither.
The two copyleft components it does ship stay inside one route each.
The HEIC decoder is fetched only after a HEIC or HEIF photo is chosen on HEIC to PDF. The Print preflight plate renderer is addressed only from Print preflight and runs in a worker of its own.
No other tool imports or links either one.
| Library | Role here | Licence | Source |
|---|---|---|---|
| @discourse/heic | Role hereLoads the HEIC decoder only on the HEIC to PDF route. | LicenceApache-2.0 | SourceFull text |
| libheif 1.19.7 | Role hereReads the HEIC container inside the route-scoped decoder. | LicenceLGPL-3.0-or-later | SourceExact source |
| libde265 1.0.15 | Role hereDecodes the HEVC image inside the route-scoped decoder. | LicenceLGPL-3.0-or-later | SourceExact source |
| Poppler 26.02.0 | Role hereRenders separation plates for Print preflight, in its own worker. | LicenceGPL-2.0-or-later | SourceFull text |
| OpenJPEG 2.5.3 | Role hereDecodes JPEG 2000 images inside that same worker. | LicenceBSD-2-Clause | SourceFull text |
Both use the released upstream code with no changes.
The Print preflight build can be repeated from published sources: the source record names the exact Poppler and OpenJPEG archives with their SHA-256 sums, the Emscripten image by digest, and the adapter and build script that produced the WebAssembly.
Asked often
- Can I reuse this code in my own project?
- Each library keeps its own licence, listed above with its full text. Permissive licences (MIT, BSD, Apache-2.0) allow reuse with attribution; the LGPL decoder and the GPL plate renderer carry the copyleft duties described in their texts.
- Why are the copyleft parts fenced onto single routes?
- So their duties stay small and checkable. The HEIC decoder loads only where HEIC photos are read, and the Poppler worker answers only to Print preflight. Nothing else imports or links either one.
- Were the libraries modified?
- No. Everything ships as released upstream, which is why the version numbers and source records above are exact. Community fixes arrive with the next update instead of living in a private fork.
- Where is the site's own code?
- The tools that wire these libraries together - the workspace, the checks, the pages - are the project's own work. The libraries do the heavy lifting under the terms above; the verification that refuses a bad download is ours.
Where to go next
- Every online PDF tool See every PDF tool on the site on one page, grouped by the job. All free, all in your browser, and your file is never uploaded.
- About Why pdfmonks exists, what it refuses to do, and who answers the mail.
- How it works Understand what runs in the browser tab, what it checks, and what it never sends.
- Privacy Know exactly what leaves the browser and what never does.