Repository navigation
v2.6.2
PDF Craft v2.6.2
PDF Craft 2.6.2 checks source PDF compatibility before expensive processing and
lets EPUB generation use Korean and other content languages without rejecting
them because fixed navigation labels are unavailable.
PDF input preflight
- All source-PDF tasks now perform mandatory pypdf and Poppler compatibility
checks before OCR, LLM requests, content/metadata callbacks, or final output.
Checks traverse pages and resources, decode content streams, render every page
at low DPI, compare geometry, and trial-write and reopen a temporary document. - The new public
PDFPreflightErroridentifies the source, backend, stage, page
and reason. It cannot be ignored byErrorPolicy, including permissive
callbacks. Source files are never repaired or replaced automatically. - Read-only PDF operations use Poppler; PDF object editing remains with pypdf.
Explicit publication labels additionally require the Poppler GLib library.
See the updated installation and error-handling guides. - Explicit
DefaultPDFHandler(poppler_path=...)directories now reach preflight
as well as actual reading. A directory does not need to appear on PATH;
successful checks for one configuration do not validate a different one. - Require pypdf 6.21.2 or later in the 6.x series. Upgrade system Poppler
separately when updating an existing deployment; Python package updates do not
update native tools. See #530. - Preflight is backend compatibility evidence, not a complete PDF conformance
certificate or a guarantee that later high-DPI rendering or composition succeeds.
The initial preflight implementation was merged in
#529.
EPUB fixed labels
- Rename the
lankeyword tolabel_languageinrender_epub(),
convert_pdf_to_epub()andEpubRenderer.render(). Update callers to the new
keyword; the former keyword is no longer accepted. - The rename applies to both synchronous and asynchronous facades. Calls that
omittedlanneed no keyword change, but uselabel_language="zh"to retain
Chinese labels instead of the new English default. Translation parameters
such astarget_language="ko"are unchanged. Before/after examples are in the
English API reference and
Chinese API reference. - This parameter chooses only fixed labels such as Cover, Table of Contents,
Preface and Unnamed. Exactzhandenselect their catalogs; every other
string falls back to English. The default is now English. - Fixed labels are no longer inferred from source or translation language.
Korean, French, regional codes and human-readable language names no longer
triggerunsupported EPUB languageduring rendering. Label fallback does not
modify body text, translation targets, PCEX language metadata or callback data. - This does not change OCR/LLM model capabilities. The pinned EPUB generator's
separate hard-coded OPF/XHTML language markers remain a known limitation;
label_languageis not a content-language metadata setting.
PCEX v4 is unchanged. No QPDF or pikepdf dependency is added.
The label and Poppler-configuration changes were merged in
#531.
Full Changelog: v2.6.1...v2.6.2