# Create AI cheat sheets from PDFs or topics: web app and CLI

## What it does
The CheatSheet tool builds a concise, multi‑column cheat sheet from a PDF document or from a user‑provided topic. It extracts definitions, formulas, key facts, dates and a short summary, then formats them as a printable PDF that can be folded into a pocket‑size reference card.

## Inputs and limits
- **Input**: one PDF file placed in the task’s input folder, or a text topic supplied via the `--topic` option.
- **PDF size limit**: up to 200 pages (as stated in the web UI).
- **Options**:
  * `--categories` – comma‑separated list of sections to include (default: `definitions,formulas,keyfacts,dates,summary`).
  * `--output-language` – ISO language code for the output (default: `en`).
  * `--task-id` – identifier for the input/output folders (required when running from the CLI; the runner supplies it automatically).

## Web app
The web page at **/ai-prod/cheat-sheet** asks you to either upload a PDF or type a topic. You can choose which categories to include, set the layout density, page size and output language, then press the “Upload PDF & Generate Cheat Sheet” button. The service returns a single‑page PDF cheat sheet that can be printed and folded.

## Command line (CLI)
The CLI plugin reads the PDF (or topic) from a per‑task input folder and writes the generated Markdown cheat sheet to the corresponding output folder. Provide the desired categories with `--categories`. Example usage: `dotnet Documentize.CheatSheet.dll --categories definitions,summary`. The plugin creates `<pdf‑name‑or‑topic>_cheat_sheet.md` in the output folder.  

```bash
# Linux / macOS (needs the .NET 10 runtime and documentize.lic next to the DLL)
export PLUGIN_INPUT_DIR=./work/input
export PLUGIN_OUTPUT_DIR=./work/output
mkdir -p "$PLUGIN_INPUT_DIR/job1"
cp sample.pdf "$PLUGIN_INPUT_DIR/job1/"
dotnet Documentize.CheatSheet.dll --task-id job1 --categories definitions,summary
ls "$PLUGIN_OUTPUT_DIR/job1"
```

```powershell
# Windows PowerShell
$env:PLUGIN_INPUT_DIR  = "$PWD\work\input"
$env:PLUGIN_OUTPUT_DIR = "$PWD\work\output"
New-Item -ItemType Directory -Force "$env:PLUGIN_INPUT_DIR\job1" | Out-Null
Copy-Item sample.pdf "$env:PLUGIN_INPUT_DIR\job1\"
dotnet Documentize.CheatSheet.dll --task-id job1 --categories definitions,summary
Get-ChildItem "$env:PLUGIN_OUTPUT_DIR\job1"
```

## Verified

Every code sample on this page was run on 2026-11-03 and its result was checked:

- CheatSheet CLI sample with text check (CLI plugin): passed in 19 s
