Needs `pdftotext` and `pdfinfo` on `PATH`. Both ship with poppler. Without
either, the tool exits `69` and says so rather than guessing.
## Example
A book whose text is fine:
```
$ pdftriage book.pdf
healthy, no OCR needed
1805 characters on the opening pages
1805 characters over 5 sample pages, ascii text score 1.00
letters 0.98, latin-1 0.00
361 characters a page
english function words 0.44
$ echo $?
1
```
A scan with no text at all:
```
$ pdftriage scan.pdf
absent, needs OCR
0 characters on the opening pages
$ echo $?
0
```
The exit code is the answer, so a shell can act on it directly:
```sh
for f in *.pdf;do pdftriage --quiet "$f"&& ocrmypdf "$f""ocr/$f";done
```
The record form:
```
$ pdftriage --json book.pdf
{"v":1,"path":"book.pdf","kind":"pdf","declared_ext":"pdf","bytes":17595,"pages":20,"language":null,"text_layer":"healthy","needs_ocr":false,"notes":["1805 characters on the opening pages","1805 characters over 5 sample pages, ascii text score 1.00","letters 0.98, latin-1 0.00","361 characters a page","english function words 0.44"]}
| `-q`, `--quiet` | Write no verdict; answer with the exit code alone. Diagnostics still go to stderr, because a silent failure is worse than a quiet one |