From f74e20caadc9a6005ac832e138db2962759457b1 Mon Sep 17 00:00:00 2001 From: tannevaled Date: Mon, 12 Oct 2026 11:42:24 +0200 Subject: [PATCH] The object graph as JSON: pdf-to-json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit parity 78.1% (89/114), pasted from the tool's own output. ⛔ pdf-to-json is NOT the text, and BentoPDF's own page says so plainly -- "the raw PDF object structure, not extracted text content", pointing anyone who wants the text at prepare-pdf-for-ai instead. So the claim is the object graph, which `pdfops objects` writes: the trailer and everything reachable from it, a stream's dictionary and length without its bytes. Reachable from the trailer, and not every object in the file: an object no reference points at is in the bytes and in nobody's document, and listing it beside the rest would say the two are alike. Co-Authored-By: Claude Opus 5 --- README.md | 6 +++--- parity/table.go | 11 +++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6332e47..1ec8be7 100644 --- a/README.md +++ b/README.md @@ -766,9 +766,9 @@ bentoparity -tools ~/src/bentopdf/docs/tools -pdfops ./pdfops -src ~/src/go-pdfk ``` ``` -covered 88 -not covered 26 -parity 77.2% (88/114), every claim verified +covered 89 +not covered 25 +parity 78.1% (89/114), every claim verified ``` ⛔ **It refuses to report a figure if a single claim cannot be checked.** A diff --git a/parity/table.go b/parity/table.go index d9227aa..96453a7 100644 --- a/parity/table.go +++ b/parity/table.go @@ -104,6 +104,17 @@ var BentoPDF = []Claim{ // repository could see. {Tool: "pdf-to-word", Claim: "verb:word"}, {Tool: "pdf-to-excel", Claim: "verb:excel"}, + // ⛔ pdf-to-json is NOT the text. BentoPDF's own page says so plainly — + // "the raw PDF object structure, not extracted text content" — and + // points anyone wanting the text at prepare-pdf-for-ai instead. So the + // claim is the object graph, which `pdfops objects` writes: the trailer + // and everything reachable from it, a stream's dictionary and length + // without its bytes. + // + // Reachable from the trailer, and not every object in the file: an + // object no reference points at is in the bytes and in nobody's + // document, and listing it beside the rest would say the two are alike. + {Tool: "pdf-to-json", Claim: "verb:objects"}, {Tool: "extract-images", Claim: "verb:images"}, {Tool: "extract-attachments", Claim: "verb:detach"}, {Tool: "add-attachments", Claim: "verb:attach"},