# Announcing crystal-pdf, crystal-asciidoctor, and crystal-asciidoctor-pdf

**URL:** <https://forum.crystal-lang.org/t/announcing-crystal-pdf-crystal-asciidoctor-and-crystal-asciidoctor-pdf/8866>\
**Category:** News\
**Created:** [April 10, 2026, 3:45pm UTC](https://forum.crystal-lang.org/t/announcing-crystal-pdf-crystal-asciidoctor-and-crystal-asciidoctor-pdf/8866 "2026-04-10T15:45:03Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![papilip](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/papilip/32/3305_2.png) [@papilip](https://forum.crystal-lang.org/u/papilip)\
**Post date:** [April 10, 2026, 3:45pm UTC](https://forum.crystal-lang.org/t/announcing-crystal-pdf-crystal-asciidoctor-and-crystal-asciidoctor-pdf/8866/1 "2026-04-10T15:45:03Z")

</div>

Hi everyone,

I’m happy to announce the release of three interconnected Crystal shards for PDF generation and AsciiDoc processing:

### crystal-pdf (v0.1.0)

A pure Crystal library for low-level PDF generation. Forked from [watzon/pdf.cr](https://github.com/watzon/pdf.cr) with major additions: formatted text layout, bounding boxes, multi-column layout, table rendering, SVG rendering, annotations, bookmarks/outline, and TrueType font embedding.

- **646 tests** , 0 failures
- [GitHub](https://github.com/aloli-crystal/crystal-pdf)

### crystal-asciidoctor (v2.0.26)

A Crystal port of the [Asciidoctor](https://asciidoctor.org/) Ruby gem (v2.0.26). Full pipeline: parse → substitute → convert, with HTML5, DocBook 5, and ManPage converters.

- **2221 tests** , 0 failures
- [GitHub](https://github.com/aloli-crystal/crystal-asciidoctor)

### crystal-asciidoctor-pdf (v2.3.24)

An AsciiDoc-to-PDF converter, the Crystal equivalent of [asciidoctor-pdf](https://github.com/asciidoctor/asciidoctor-pdf) (v2.3.24). Supports sections, lists, tables, code highlighting (12 languages), admonitions, TOC, bookmarks, clickable links, TTF fonts, and YAML themes.

- **43 tests** , 0 failures
- Includes a CLI: `crystal-asciidoctor-pdf document.adoc`
- [GitHub](https://github.com/aloli-crystal/crystal-asciidoctor-pdf)

### Installation

```yaml
# shard.yml — pick the shards you need
dependencies:
  crystal-pdf:
    github: aloli-crystal/crystal-pdf
    version: "~> 0.1"
  crystal-asciidoctor:
    github: aloli-crystal/crystal-asciidoctor
    version: "~> 2.0"
  crystal-asciidoctor-pdf:
    github: aloli-crystal/crystal-asciidoctor-pdf
    version: "~> 2.3"

```

### Context

There is currently no mature pure-Crystal PDF library. crystal-pdf, with its text layout engine, table support, and SVG rendering, aims to fill that gap. The existing thread on [Let’s work on pdf.cr](https://forum.crystal-lang.org/t/lets-work-on-pdf-cr/4911) was an inspiration.

Feedback, issues, and contributions are very welcome !

---

<div class="post-metadata">

**Author:** ![ralsina](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/ralsina/32/2139_2.png) [@ralsina](https://forum.crystal-lang.org/u/ralsina)\
**Post date:** [April 14, 2026, 7:00pm UTC](https://forum.crystal-lang.org/t/announcing-crystal-pdf-crystal-asciidoctor-and-crystal-asciidoctor-pdf/8866/2 "2026-04-14T19:00:25Z")

</div>

Nice! Wonder if I can do a markdown renderer using this now that markd’s master has tables

---

<div class="post-metadata">

**Author:** ![papilip](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/papilip/32/3305_2.png) [@papilip](https://forum.crystal-lang.org/u/papilip)\
**Post date:** [April 14, 2026, 8:58pm UTC](https://forum.crystal-lang.org/t/announcing-crystal-pdf-crystal-asciidoctor-and-crystal-asciidoctor-pdf/8866/3 "2026-04-14T20:58:15Z")

</div>

The porting of Ruby gems related to Markdown is underway.

I will soon offer a “crystal-markdown” shard that will allow conversion from Markdown to PDF/EPUB/HTML/reveal.js.
