From a068f7607490d4a5c6db5455cd3dfbf5bef3dd3e Mon Sep 17 00:00:00 2001 From: jpirnay Date: Fri, 20 Mar 2026 17:15:08 +0100 Subject: [PATCH] Fix img layout bug --- lib/Epub/Epub/parsers/ChapterHtmlSlimParser.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/Epub/Epub/parsers/ChapterHtmlSlimParser.cpp b/lib/Epub/Epub/parsers/ChapterHtmlSlimParser.cpp index ad964593..22023926 100644 --- a/lib/Epub/Epub/parsers/ChapterHtmlSlimParser.cpp +++ b/lib/Epub/Epub/parsers/ChapterHtmlSlimParser.cpp @@ -397,6 +397,16 @@ void XMLCALL ChapterHtmlSlimParser::startElement(void* userData, const XML_Char* LOG_DBG("EHP", "Display size: %dx%d (scale %.2f)", displayWidth, displayHeight, scale); } + // Flush any pending text block so it appears before the image + if (self->partWordBufferIndex > 0) { + self->flushPartWordBuffer(); + } + if (self->currentTextBlock && !self->currentTextBlock->isEmpty()) { + self->makePages(); + self->currentTextBlock.reset(); + self->wordsExtractedInBlock = 0; + } + // Create page for image - only break if image won't fit remaining space if (self->currentPage && !self->currentPage->elements.empty() && (self->currentPageNextY + displayHeight > self->viewportHeight)) {