PDF Craft v2.6.1
PDF Craft 2.6.1 fixes cross-page paragraphs interrupted by figures or tables,
adds last-resort recovery for inconsistent extraction results, and prevents
contradictory OCR geometry from erasing unrelated PDF content. It also fixes
repeated XML-fill failures when translation turns LaTeX into natural text.
Public APIs and the PCEX v4 archive format are unchanged from 2.6.0.
Extraction and recovery
- Keep images and tables between the text fragments of a cross-page paragraph,
including during footnote refinement and reconstruction. Independent display
formulas remain paragraph boundaries. - When permitted by the error policy, unusable chapter analysis can recover
affected pages as source-page images. If rendering fails, a separate policy
decision permits explicit page placeholders. Recovery also covers extraction
without LLM refinement. - Recovery includes complete cross-page paragraphs and related footnotes and
references, including intermediate pages containing only anchored assets.
It leaves OCR caches and already delivered previews unchanged. - Accepting the traditional algorithmic result does not automatically authorize
page-image recovery. Decision callbacks receive the proposed recovery and
affected pages. If every primary page ultimately degrades because of errors,
extraction still fails instead of reporting success.
PDF writeback protection
- Detect text source boxes that substantially cover unrelated figures or text
before erasing them. With policy approval, retain the actual original PDF
pages, including pages linked by complete cross-page paragraphs, while other
pages continue processing. - Skipped replacements do not emit fabricated translated layout previews. Strict
error policies still raise, and recovery of every primary writeback target
still makes the task fail. - Fix a first-item translation error when page furniture supplies a
pretranslation mapping.
These extraction and writeback fixes are included in
#525.
Formula translation and XML fill
- Treat temporary formula elements as ordinary inline text slots during fill.
A valid translation such as “16 times” no longer has to reproduce the source
LaTeX spelling to pass validation. - Keep strict structure, ID and full-paragraph text validation. Restore original
source formulas only after the fill loop accepts the response, without
restarting the loop because their representation differs from the translation. - Add deterministic regressions for the three reported paragraphs and a reusable
real-model gate requiring three consecutive successful runs at temperature
0.7 and top_p 1.0, without counting fallback as success.
The English and Chinese error-handling and PDF-translation guides describe the
recovery decisions and formula-restoration behavior.
Additional fill edge cases remain tracked in
#526 and
#527.
Full Changelog: v2.6.0...v2.6.1