License
Usage of PeachPDF is free and open source under the terms of the BSD 3-Clause license. There is no cost, no royalty, and no separate commercial license — the same terms apply to everyone, whether or not you have a paid support plan or sponsor the project.
License text
Copyright (c) 2009, José Manuel Menéndez Poo
Copyright (c) 2013, Arthur Teplitzki
Copyright (c) 2017-2026 Justin Haygood
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
Neither the name of the menendezpoo.com, ArthurHub nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Third-party components
Portions of PeachPDF are sourced from third parties and are licensed under alternative, BSD-compatible permissive license terms:
| Functionality | Origin | License |
|---|---|---|
| CSS engine (parsing, CSS-OM) | Fork of ExCSS (Tyler Brinks) | MIT |
| PDF engine (document model, PDF writing) | Fork of PDFsharp (empira Software GmbH) | MIT |
| Core HTML rendering engine lineage | Derived from HtmlRenderer (José Manuel Menéndez Poo, Arthur Teplitzki) | BSD 3-Clause (the license above) |
Hyphenation pattern data (hyphens: auto) |
CTAN’s hyph-utf8 package | A mix of permissive licenses including MIT and LPPL, plus BSD-style and public-domain patterns. Pattern files under copyleft (GPL/LGPL) or missing license terms are deliberately not shipped — see hyphens: auto language coverage |
| Text-processing data tables (Bidi_Class/bracket pairs/mirroring for the Unicode Bidi Algorithm; Vertical_Orientation; Script; Joining_Type for Arabic-family complex-script joining; Indic_Syllabic_Category/Indic_Positional_Category for the Universal Shaping Engine — Devanagari, Bengali, Gujarati, Tamil) | The Unicode Character Database, version 17.0.0 | Unicode License v3 |
| Arabic/Syriac cursive-joining state machine | Ported from HarfBuzz’s hb-ot-shaper-arabic.cc |
HarfBuzz’s “Old MIT” license (functionally MIT-equivalent) — see THIRD-PARTY-LICENSES.md |
| GPOS cursive attachment positioning formula | Ported from HarfBuzz’s OT/Layout/GPOS/CursivePosFormat1.hh |
HarfBuzz’s “Old MIT” license (functionally MIT-equivalent) — see THIRD-PARTY-LICENSES.md |
| Universal Shaping Engine syllable grammar/reorder/category-derivation algorithm (Devanagari, Bengali, Gujarati, Tamil) | Ported from HarfBuzz’s hb-ot-shaper-use-machine.rl, hb-ot-shaper-use.cc, and gen-use-table.py |
HarfBuzz’s “Old MIT” license (functionally MIT-equivalent) — see THIRD-PARTY-LICENSES.md |
Font assets
Every font the repository bundles lives in one place — the assets/fonts/ directory — shared by the test suite, the showcase harness and the browser demo, with each font’s original license notice kept intact beside it in an accompanying .LICENSE.txt.
None of these fonts is shipped in the PeachPDF library or its NuGet package, and none imposes any obligation on applications that consume PeachPDF. They exist so the test suite can exercise font matching, unicode-range selection, subsetting/embedding, monochrome-emoji (astral / cmap format-12) and color-glyph (COLR/CPAL) rendering against real font files instead of depending on whatever happens to be installed on the machine running the tests; so the showcase can demonstrate color fonts; and — for the Liberation family only — so the in-browser demo has fonts at all, since a WebAssembly host has no discoverable system fonts. The Liberation fonts are the one exception to “not distributed”: they are served as static assets by the demo page.
| Font | Used by | License |
|---|---|---|
Liberation Sans, Liberation Serif, Liberation Mono 2.1.5 (© 2012 Red Hat, Inc.) — see assets/fonts/LiberationFonts.LICENSE.txt |
Browser demo, showcase | SIL OFL 1.1 |
Noto Emoji (subset; © 2013 Google LLC) — see assets/fonts/NotoEmoji-Regular.LICENSE.txt |
Tests | SIL OFL 1.1 |
Noto Color Emoji (COLR v1 subset; © 2013 Google LLC) — the real color-emoji font in the Color Fonts showcase; see assets/fonts/NotoColorEmoji-Subset.LICENSE.txt |
Tests, showcase | SIL OFL 1.1 |
Nabla (COLR v1 subset; © 2022 The Nabla Project Authors) — the 7-palette color font behind font-palette support and the font-palette showcase; see assets/fonts/NablaSubset.LICENSE.txt |
Tests, showcase | SIL OFL 1.1 |
Noto Sans Hebrew (subset; © The Noto Project Authors) — real Hebrew glyphs for the bidirectional text showcase; see assets/fonts/NotoSansHebrewSubset.LICENSE.txt |
Tests, showcase | SIL OFL 1.1 |
Noto Sans Arabic (subset; © 2022 The Noto Project Authors) — real Arabic glyphs for the Arabic-family joining showcase; see assets/fonts/NotoSansArabicSubset.LICENSE.txt |
Tests, showcase | SIL OFL 1.1 |
Aref Ruqaa (subset; © 2022 The Noto Project Authors) — a calligraphic Arabic font whose own joining relies on GPOS cursive attachment, for the same showcase; see assets/fonts/ArefRuqaaSubset.LICENSE.txt |
Tests, showcase | SIL OFL 1.1 |
Noto Sans Devanagari (subset; © 2022 The Noto Project Authors) — real Devanagari glyphs for the Devanagari USE showcase; see assets/fonts/NotoSansDevanagariSubset.LICENSE.txt |
Tests, showcase | SIL OFL 1.1 |
Noto Sans Bengali (subset; © 2022 The Noto Project Authors) — real Bengali glyphs for the USE: Bengali, Gujarati & Tamil showcase; see assets/fonts/NotoSansBengaliSubset.LICENSE.txt |
Tests, showcase | SIL OFL 1.1 |
Noto Sans Gujarati (subset; © 2022 The Noto Project Authors) — real Gujarati glyphs for the same showcase; see assets/fonts/NotoSansGujaratiSubset.LICENSE.txt |
Tests, showcase | SIL OFL 1.1 |
Noto Sans Tamil (subset; © 2022 The Noto Project Authors) — real Tamil glyphs for the same showcase; see assets/fonts/NotoSansTamilSubset.LICENSE.txt |
Tests, showcase | SIL OFL 1.1 |
| Inter | Tests | SIL OFL 1.1 |
| Source Code Pro | Tests | SIL OFL 1.1 |
| Source Sans 3 | Tests | SIL OFL 1.1 |
gsubtest-lookup3 (synthetic GSUB conformance font; © web-platform-tests contributors) — the only publicly available font found with real petite-caps/all-petite-caps GSUB Alternate Substitution data; see assets/fonts/gsubtest-lookup3.LICENSE.txt |
Tests | 3-Clause BSD |
The two hand-authored COLR color-glyph fixtures used by the color-font tests (ColorTestV0.ttf / ColorTestV1.ttf) contain no third-party font data and are released into the public domain (CC0); see assets/fonts/ColorTestFonts.LICENSE.txt.
A note on the Liberation WOFF files. The bundled Liberation fonts are format-converted from the upstream TrueType release (liberation-fonts 2.1.5) to WOFF 1.0, which roughly halves the demo’s download. The Liberation license declares a Reserved Font Name, and the OFL’s definition of a “Modified Version” includes changing formats — so under the SIL OFL FAQ §2.2.1 the name may only be retained when the original font data is unchanged apart from WOFF compression and no conflicting WOFF metadata is added. The conversion satisfies both conditions: it is a lossless recompression with no subsetting and no WOFF metadata block, and it is verified after the fact — outlines, metrics, character mapping and the copyright/license name records are all compared against the source. The script that performs and checks it is assets/fonts/convert_liberation_webfonts.py, which also explains why the format is WOFF 1.0 rather than the smaller WOFF2.
Showcase assets (not distributed)
The following non-font assets are embedded in the PeachPDF.TestHarness project solely to render a showcase — they are not shipped in the PeachPDF library or its NuGet package, and impose no obligation on applications that consume PeachPDF. Each original license notice is kept intact in the file header and/or an accompanying LICENSE.txt:
| Asset | License |
|---|---|
Charts.css v1.2.0 (© 2020 Rami Yushuvaev) — the pure-CSS charting framework used by the Charts.css showcase; see src/PeachPDF.TestHarness/charts.css.LICENSE.txt |
MIT |
License FAQ
Can I use PeachPDF in a commercial product?
Yes. The BSD 3-Clause license permits commercial use with no fees or royalties. Closed-source, SaaS, internal tooling, shipped desktop software — all fine.
Do I have to open-source my application?
No. BSD 3-Clause is a permissive license, not a copyleft one. Using, linking, or embedding PeachPDF places no requirements on your own code’s license.
What am I required to do?
If you redistribute PeachPDF’s source code, keep the copyright notice, conditions, and disclaimer intact. If you redistribute it in binary form (which includes shipping an application that bundles it), reproduce the copyright notice, conditions, and disclaimer in your documentation and/or other distribution materials. Consuming the unmodified NuGet package already carries the project’s license notices with it; most applications satisfy the binary-form requirement with an ordinary third-party-notices file or “about” screen entry.
Can I modify PeachPDF or maintain my own fork?
Yes — modification and redistribution are explicitly permitted, under the same notice conditions above. Contributions back upstream are welcome but never required.
Can I use the authors’ names to promote my product?
No. The third clause forbids using the names of the copyright holders or contributors to endorse or promote derived products without prior written permission. Saying your product uses PeachPDF is fine; implying the authors endorse your product is not.
Is there a warranty?
No — the software is provided “as is”, without warranty of any kind, and the copyright holders are not liable for damages arising from its use. If you need guaranteed help, response times, or integration assistance, that’s exactly what the paid support plan is for.
Does buying paid support or sponsoring change the license?
No. Support and sponsorship buy help and priority, not different license terms. Everyone uses PeachPDF under the same BSD 3-Clause license.