gitprint
Convert git repositories into beautifully formatted, printer-friendly PDFs.
Features
- Syntax-highlighted source code with 100+ languages supported
- Configurable color themes (InspiredGitHub, Solarized, base16, and more)
- Table of contents and directory tree visualization
- Automatic binary and minified file detection and exclusion
- Glob-based include/exclude filtering
- Multiple paper sizes (A4, Letter, Legal) and landscape mode
- Branch and commit selection for printing specific revisions
- Embedded JetBrains Mono font for crisp code rendering
- Memory-efficient streaming — processes one file at a time
Installation
With Nix
With Cargo
Usage
# Generate PDF from current directory
# Generate PDF from a specific repository
# Output to a specific file
# Include only Rust and TOML files
# Exclude test files
# Use a different theme
# List available themes
# Use Letter paper in landscape
# Print a specific branch or commit
# Minimal output: no TOC, no file tree, no line numbers
CLI Reference
Convert git repositories into beautifully formatted PDFs
Usage: gitprint [OPTIONS] [PATH]
Arguments:
[PATH] Path to git repository [default: .]
Options:
-o, --output <OUTPUT> Output PDF file path
--include <INCLUDE> Glob patterns for files to include (repeatable)
--exclude <EXCLUDE> Glob patterns for files to exclude (repeatable)
--theme <THEME> Syntax highlighting theme [default: InspiredGitHub]
--font-size <FONT_SIZE> Code font size in points [default: 8]
--no-line-numbers Disable line numbers
--no-toc Disable table of contents
--no-file-tree Disable directory tree visualization
--branch <BRANCH> Use a specific branch
--commit <COMMIT> Use a specific commit
--paper-size <PAPER_SIZE> Paper size [default: a4] [possible values: a4, letter, legal]
--landscape Use landscape orientation
--list-themes List available syntax themes and exit
-h, --help Print help
-V, --version Print version
Development
Running CI Locally
This runs the full check suite: package build, clippy lints, rustfmt, and tests.
License
MIT