borb is a library for reading, creating and manipulating PDF files in python.

3430
146
Python

borb logo borb

Code style: black
Public Method Documentation: 100%
Tests: 1300+
Python Versions: 3.10, 3.11, 3.12
Type Checking: 100%
Downloads
Monthly Downloads

borb is a powerful and flexible Python library for creating and manipulating PDF files.

๐Ÿ“– Overview

borb provides a pure Python solution for PDF document management, allowing users to read, write, and manipulate PDFs. It models PDF files in a JSON-like structure, using nested lists, dictionaries, and primitives (numbers, strings, booleans, etc.). Created and maintained as a solo project, borb prioritizes common PDF use cases for practical and straightforward usage.

โœจ Features

Explore borbโ€™s capabilities in the examples repository for practical, real-world applications, including:

  • PDF Metadata Management (reading, editing)
  • Text and Image Extraction
  • Adding Annotations (notes, links)
  • Content Manipulation (adding text, images, tables, lists)
  • Page Layout Management with PageLayout

โ€ฆand much more!

๐Ÿš€ Installation

Install borb directly via pip:

pip install borb

To ensure you have the latest version, consider the following commands:

pip uninstall borb
pip install --no-cache borb

๐Ÿ‘‹ Getting Started: Hello World

Create your first PDF in just a few lines of code with borb:

from pathlib import Path
from borb.pdf import Document, Page, PageLayout, SingleColumnLayout, Paragraph, PDF

# Create an empty Document
d: Document = Document()

# Create an empty Page
p: Page = Page()
d.append_page(p)

# Create a PageLayout
l: PageLayout = SingleColumnLayout(p)

# Add a Paragraph
l.append_layout_element(Paragraph('Hello World!'))

# Write the PDF
PDF.write(what=d, where_to="assets/output.pdf")

๐Ÿ›  License

borb is dual-licensed under AGPL and a commercial license.

The AGPL (Affero General Public License) is an open-source license, but commercial use cases require a paid license, especially if you intend to:

  • Offer paid PDF services (e.g., PDF generation in cloud applications)
  • Use borb in closed-source projects
  • Distribute borb in any closed-source product

For more information, contact our sales team.

๐Ÿ™ Acknowledgements

Special thanks to:

  • Aleksander Banasik
  • Benoรฎt Lagae
  • Michael Klink

Your contributions and guidance have been invaluable to borbโ€™s development.