Skip to content
Daniel Boles edited this page Nov 6, 2026 · 2 revisions

SlideBridge

The text on a slide is only half of what an editor needs to see, and the other half is the slide.

SlideBridge is a command-line tool that turns PowerPoint decks into a Word review pack: one table per slide, with a screenshot of the slide, the extracted text, and an empty column where an editor records changes.

简体中文: SlideBridge 把 PowerPoint(.pptx)文件转换成便于审校的 Word(.docx)文件:每张幻灯片一个表格,含截图、提取出的文字和留给编辑填写修改的空列;截图需要安装 LibreOffice。

繁體中文: SlideBridge 將 PowerPoint(.pptx)檔案轉換成便於審校的 Word(.docx)檔案:每張投影片一個表格,含截圖、擷取出的文字與留給編輯填寫修改的空欄;截圖需要安裝 LibreOffice。

At a glance

What it is A five-stage pipeline (extract, render, reconcile, build, audit) plus an alignment command and a Tkinter front end
Language Python 3.11 or later (run here on 3.12 under Windows); python-pptx, python-docx, PyMuPDF, typer, pydantic
Tests 45 tests, all on synthetic decks built in code: 44 pass without LibreOffice and 1 is skipped, and all 45 pass with it
Status Version 0.1.0. The pipeline runs end to end on a synthetic deck; the review pack is not A4 in size and align has an unreliable segmenter, both reproduced and described on Evidence
Licence Apache-2.0

Why it matters

A deck is awkward to review in Word, because its words sit in shapes scattered across slides while the picture that gives them meaning lives elsewhere, and a reviewer who wants tracked changes needs both in one place. SlideBridge lays each slide out as a table under its own screenshot, so that the layout and the words stay together and the editor has a column for the revised text. The reading order and the confidence scores are heuristics that have run only on synthetic decks, which these pages say plainly, and the audit files point a reviewer to the doubtful slides first.

Skills shown

  • Document-format engineering across four formats: PPTX read with python-pptx, PDF produced by headless LibreOffice, PNG rendered with PyMuPDF, and DOCX written with python-docx.
  • Pipeline design with files at every stage boundary, loud validation of render output, a --resume mode, and a JSON Schema check on the manifest.
  • Heuristic scoring with named constants: confidence penalties, a low-confidence threshold of 0.60, and reading order from geometry.
  • Approximate text matching with rapidfuzz in a five-strategy cascade, and the tests and probing that exposed where it breaks.
  • Typed models with pydantic, a typer command line, Rich console output, and a Tkinter interface over the same orchestration.
  • Honest verification: synthetic decks generated in code, a render test that skips itself when LibreOffice is missing, and a defect list reproduced from the tool's own output.

Results

All 45 tests pass when soffice is on the PATH; without it, 44 pass and the render test skips. A run of the sample pipeline on Windows for this wiki took about 5 seconds and produced these figures in output/run_report.json:

{"total_files": 1, "total_slides": 17, "total_images": 17, "low_confidence_slides": 0, "warnings": 5}

The review pack held 17 tables and 17 images, and the five warnings were table_detected on slides 3, 6, 9, 12, and 15, which are the slides that carry a table. Every input is a synthetic deck written by the test helper; no real client or company deck has been run through the tool, and the confidence scores say nothing about how it behaves on complex layouts, charts, or grouped shapes.

Pages

Clone this wiki locally