Skip to content

PDFStruct v0.4.0

Latest

Choose a tag to compare

@KelesogluMustafa KelesogluMustafa released this 15 Oct 03:17

PDFStruct converts documents on your own computer. 0.4.0 makes DOCX to PDF keep the layout, reads text that earlier versions dropped without a word, and brings two fixes that were prepared as 0.3.1 (never published). Free and open source (MIT): no account, no telemetry, no usage limits.

New: DOCX to PDF keeps the layout

  • When Microsoft Word (Windows) or LibreOffice is installed, PDFStruct lets that program draw the document: text boxes, headers and footers, images, fonts and columns appear as in Word.
  • Without either, the PDF is the readable re-flow as before, with the warning pdf_layout_unavailable.
  • Choose with --pdf-mode auto|layout|reflow on the command line, or pdf_mode in the MCP convert tool (one new optional parameter; the tool names are unchanged).
  • Safe by default: each render runs in its own process with a time limit, on a private copy in a temporary folder. Word runs as a separate hidden instance with macros disabled and is never the Word you have open. The source file is never opened in place.
  • Works in the portable package too (PDFStruct.exe, pdfstruct-cli.exe).

Fixes: text that was dropped is now read

  • DOCX: text boxes (for example a CV sidebar), page headers and footers, form fields, fields, tracked insertions, tables inside table cells, footnotes and endnotes.
  • HTML: a table inside a table cell no longer wipes the outer table; filled-in form values are read (passwords and hidden inputs stay out).
  • PDF: filled-in form fields and visible free-text annotations are read after the page text.
  • Comments, sticky notes and highlights are not document text; they are only counted in a warning.

Other fixes

  • Writing XLSX no longer slows down with every row: a 73-page PDF with about 29,000 blocks took 277 seconds to write and now takes 2.
  • A PDF page that is only a picture and on which OCR finds no text is no longer reported as read by OCR. It keeps method none with the warning no_text_found, like an image without text. Nothing is invented and the page is kept.

DOCX and HTML files (and PDFs with forms) are extracted once more on the first run because their readers changed; cached OCR work on other PDFs is kept. On Windows, pywin32 (PSF license) is now installed for the Word engine.

Which file do I need?

File For
PDFStruct-Portable-0.4.0-win64.zip Windows without Python: desktop window and command line. Extract completely, then run PDFStruct.exe. Unsigned, so SmartScreen may warn. No updater, no Claude integration.
PDFStruct-Windows-Setup-0.4.0.zip Windows with Python 3.10 to 3.13: run install-windows.cmd. Includes updater and rollback. Required for Claude.
pdfstruct-0.4.0.mcpb Claude Desktop extension (needs Windows Setup).
pdfstruct-plugin.zip Claude Code / Cowork plugin (needs Windows Setup).
pdfstruct-skill.zip The skill alone, only if you do not use the plugin.
pdfstruct-0.4.0-py3-none-any.whl, pdfstruct-0.4.0.tar.gz pip install on any platform, and source.
SHA256SUMS.txt Checksums of all files above.

Updating

  • From 0.3.0: run update-windows.cmd, then restart Claude. The extension and the plugin follow the active version and need no reinstall.
  • From 0.2.1: run install-windows.cmd from the 0.4.0 Setup ZIP once (the 0.2.1 updater does not accept newer versions).

Platform status

  • Windows 10/11 x64: supported. Desktop window tested by hand on Windows 11. Layout rendering tested with Microsoft Word; the LibreOffice path is covered by code but was not tested on a machine with LibreOffice for this release.
  • macOS, Linux: command line and MCP server covered by automated tests; desktop window not tested. OCR is not available on macOS Intel, Linux ARM64 and Windows ARM.

Full list of changes: CHANGELOG.md