prawnpdf/prawn

Fast, Nimble PDF Writer for Ruby

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 7 minutes ago
Type:Library / SDKCategory(s):Core & Utility LibrariesLanguages & Runtimes
Added to GitGenius on September 14th, 2026
Created on April 4th, 2008
Open Issues & Pull Requests: 93 (+0)
GitHub issues: Enabled
Number of forks: 695
Total Stargazers: 4,822 (+0)
Total Subscribers: 91 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 4.6 days
Mean response time: 357.9 days
90th percentile: 543.5 days
Tracked items: 40

Most active contributors

Sign in to see contributor activity.

How this project is maintained

95% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Three people close 70% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 20
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,430 days
Stale 30+ days: 20
Stale 90+ days: 19

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • confirmed-bug (1)
  • table (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Prawn is a pure Ruby PDF generation library that provides vector drawing, text rendering, image embedding, and security features while remaining simple and reasonably performant.

Prawn solves the problem of generating PDF documents programmatically from Ruby applications. It works by providing a comprehensive API for composing PDF content, from low-level vector graphics and text layout to higher-level features like headers, footers, and page numbering. The library supports both built-in PDF fonts and embedded TrueType fonts, handles internationalization including UTF-8 and right-to-left text rendering, and allows embedding of PNG and JPG images with flexible scaling. For developers needing deeper control, Prawn exposes the underlying PDF object tree, enabling custom extensions for specialized use cases.

Prawn is designed for developers building flexible PDF document generation systems within Ruby applications. It suits projects that need programmatic control over PDF layout and content rather than converting existing HTML or documents to PDF format. The README explicitly states that Prawn is not an HTML-to-PDF generator and recommends alternative tools for that use case. The library is not positioned as a reporting tool or publishing toolchain, though it provides enough primitives that such systems could be built on top of it. Prawn works across Ruby versions and implementations supported by the Ruby Core Team, as well as matching JRuby versions, since it is pure Ruby with no external runtime dependencies.

The project maintains a manual with examples demonstrating the range of features, supplemented by API documentation. The master branch is kept in working order and encouraged for use, though it may contain rough edges alongside bugfixes. The maintainers accept patches for problems on other Ruby platforms provided they are not overly invasive.