Skip to content

v2.4.4

Choose a tag to compare

@github-actions github-actions released this 20 Oct 02:12
· 84 commits to main since this release
5f99b57

PDF Craft v2.4.4

PDF Craft 2.4.4 fixes bilingual PDF-to-Markdown and PDF-to-EPUB conversion with
SubmitKind.APPEND_BLOCK. In 2.4.3, translation could finish successfully but
conversion would fail before rendering with contains duplicate fragment identity.

One-shot translation and bilingual output

  • One-shot conversion now uses the same separate source and replacement-only
    translation layers as translate_extraction(). Bilingual content is combined
    only for rendering, preserving fragment identities and bounding boxes in each
    stored layer. Source-identity validation remains strict.
  • All three submission modes retain distinct presentation: REPLACE displays
    the translation, APPEND_TEXT appends translated content within each matching
    source fragment, and APPEND_BLOCK displays each source body paragraph followed
    by its translated paragraph. One-shot conversion explicitly selects the new
    translation even when earlier translation layers exist.
  • Added RenderMode.BILINGUAL_TEXT for the same-flow presentation when rendering
    stored translations. Existing RenderMode.BILINGUAL retains paragraph-based
    presentation. Headings and table-of-contents titles remain combined titles.
  • Images and tables appear once in bilingual output. Translated asset fields are
    matched before bilingual paragraphs alter display positions, and table text is
    combined within cells. Repeated EPUB footnote references have unique link IDs
    while sharing one definition. Explicit preserved footnote coverage retains
    source text; older layers without footnote coverage keep their existing behavior.

The PCEX archive format, existing source identities, one-shot EPUB language
selection, and replacement-only PDF writeback remain unchanged. Submission modes
for translating an existing EPUB are unchanged.

Regression coverage

Tests reproduce the original failure before the fix and exercise the public
synchronous and asynchronous Markdown/EPUB conversion APIs in all three modes.
They run actual XML submission, workspace validation and rendering with
deterministic translation responses, covering multi-fragment paragraphs,
headings, footnotes, assets, preserved content and stored-layer round trips.

See #512.

Full Changelog: v2.4.3...v2.4.4