pdf-audit

Visual audit toolkit for PDFs. Detects typographic anomalies (margin overflow, stuck words, orphan punctuation, justify gaps). Built on aloli-crystal/pdf2text.

= aloli-crystal/pdf-audit :toc: left :toc-title: Contents

See link:README.fr.adoc[the French README] for full documentation.

Visual audit toolkit for PDFs. Four pillars : baseline (extract manifest YAML), diff (compare baselines for regression detection), lint (detect typographic anomalies), annotate (generate report of findings). Pure Crystal, zero external dependencies — built on aloli-crystal/pdf2text.

== Quick start

[source,crystal]

require "pdf-audit"

manifest = PdfAudit::Manifest.from_pdf("doc.pdf") findings = PdfAudit::Linter.lint(manifest) findings.each do |f| puts "p#{f.page} [#{f.kind}] #{f.message}" end

[source,bash]

pdf-audit baseline doc.pdf -o baseline.yml pdf-audit lint doc.pdf pdf-audit diff baseline.yml after.yml pdf-audit annotate doc.pdf -o report.txt pdf-audit help

== Roadmap

[%autowidth] |=== | Version | Target | Status

| 0.1.0 | 4 pillars functional, e2e tested on beryl README | ✓ Released | 0.2.0 | annotate PDF overlay (rectangles around findings) | Planned | 0.3.0 | Additional linter rules (rivers, widows/orphans, asymmetric margins) | Planned | 0.4.0 | Reusable GitHub Action + integration with other ALOLI shards | Planned | 1.0.0 | TBD when API stabilizes and shard is battle-tested | Deferred |===

No premature v1.0 — we accumulate 0.x releases while surface evolutions are in flight. Maturity is measured by real-world use (active CI on several projects, integrated feedback, no breaking changes for 6 months).

== License

MIT.

Repository

pdf-audit

Owner
Statistic
  • 0
  • 0
  • 0
  • 0
  • 2
  • about 1 hour ago
  • June 4, 2026
License

MIT License

Links
Synced at

Thu, 04 Jun 2026 09:44:49 GMT

Languages