From 4165cda628bd16dbd77528be48f1a22a57da678a Mon Sep 17 00:00:00 2001 From: tannevaled Date: Sun, 11 Oct 2026 12:25:02 +0200 Subject: [PATCH] The Office three, and the one shortfall they share MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit excel-to-pdf and powerpoint-to-pdf join word-to-pdf, all three through go-ooxml/ooxml v0.2.0 over go-ooxml/opc v0.1.0. ⛔ EACH OF THE THREE TAKES THE PRE-2007 BINARY FORMAT AS WELL, and nothing in the fleet reads one: word-to-pdf DOC (and DOCX ✓, ODT ✓, RTF ✓) excel-to-pdf XLS (and XLSX ✓, ODS ✓, CSV ✓) powerpoint-to-pdf PPT (and PPTX ✓, ODP ✓) They are OLE compound files — a different container entirely from OPC, with its own FAT and its own record streams — so this is a gap of ONE missing library and not of three missing readers. That is worth knowing before anybody starts: the three shortfalls close together or not at all. Written down in the table the way cbz-to-pdf names CBR, because a claim whose shortfall is written down can be closed by whoever reads it. The claims name ParseWorkbook and ParsePresentation rather than the repository, so each goes on being checked against the reader it is about. Pasted from the tool's own output: covered 79 not covered 35 parity 69.3% (79/114), every claim verified Measured 2026-10-11 against BentoPDF 3a5f146 (v2.8.8, 114 tools), pdfops and ops at a376bb2 (= v0.13.0), ooxml at v0.2.0, opc at v0.1.0, odf 3d1deee (= v0.7.0), convert 45fbb5d, render 3bb5dcf, app 1feda5d, rtf 6bc4897, markdown eafebfd, data 128b6c7. Co-Authored-By: Claude Opus 5 --- README.md | 6 +++--- parity/table.go | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index cc45ca1..90f6d9c 100644 --- a/README.md +++ b/README.md @@ -766,9 +766,9 @@ bentoparity -tools ~/src/bentopdf/docs/tools -pdfops ./pdfops -src ~/src/go-pdfk ``` ``` -covered 77 -not covered 37 -parity 67.5% (77/114), every claim verified +covered 79 +not covered 35 +parity 69.3% (79/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 9291643..079b9be 100644 --- a/parity/table.go +++ b/parity/table.go @@ -114,6 +114,22 @@ var BentoPDF = []Claim{ // a "go-ooxml/ooxml exists" claim would go on saying yes after the Word // reader had been dropped in favour of the other two. {Tool: "word-to-pdf", Claim: "go-ooxml/ooxml#func ParseWord"}, + {Tool: "excel-to-pdf", Claim: "go-ooxml/ooxml#func ParseWorkbook"}, + {Tool: "powerpoint-to-pdf", Claim: "go-ooxml/ooxml#func ParsePresentation"}, + + // ⛔ THE SAME SHORTFALL IN ALL THREE, named rather than passed over: each + // of BentoPDF's three Office tools takes the pre-2007 BINARY format as + // well, and nothing in the fleet reads one. They are OLE compound files — + // a different container entirely from OPC, with its own FAT and its own + // record streams — so this is a gap of one missing library and not of + // three missing readers. + // + // word-to-pdf DOC (and DOCX ✓, ODT ✓, RTF ✓) + // excel-to-pdf XLS (and XLSX ✓, ODS ✓, CSV ✓) + // powerpoint-to-pdf PPT (and PPTX ✓, ODP ✓) + // + // Writing it down the way cbz-to-pdf names CBR: a claim whose shortfall is + // written down can be closed by whoever reads it, and the three share one. {Tool: "markdown-to-pdf", Claim: "go-richdoc/markdown#func Parse"}, // --- the data formats, through go-richdoc/data -------------------------