When Okular is loading a new page, it usually takes seconds before the final rendering appears, showing nothing but a diagonal cross across the page and sometimes a magnified version of the thumbnail preview -- interrupting the flow of reading. However, this is not too useable as you cannot start reading the content unless it is fully rendered. Acrobat Reader and KGhostview take another way which not only makes them "feel" faster but also enables the user to start reading before all of the page has been rendered: They immediately output the rendering to the screen, even if the page is still being processed. As most pdf-documents are laid out in reading-order, the upper part of the page (usually the position one starts reading, at least LTR-readers) will be shown virtually immediately, thus enabling the reader to start reading, while the later parts are incrementally displayed as rendering proceeds. It is to be expected that the reader needs much longer to read the text than the algorithm needs to process the page, hence incremental rendering would be worthwile. Therefore I propose that Okular be enhanced with an incremental rendering mode, just like kghostview and AR do. Reproducible: Always Also applied to kpdf, see bug 130643
Git commit a2f5560c007648ffe753851fbb575d5c8afee6e1 by Albert Astals Cid. Committed on 09/11/2017 at 16:28. Pushed by aacid into branch 'master'. PDF: Support the poppler 0.62 renderToImage with update callback Summary: This way pages that take more than 500ms to render get updated every so often so that the user can see that the program didn't hang, it's just that it's taking long to render Tags: incremental rendering, partial updates Subscribers: #okular Tags: #okular Differential Revision: https://phabricator.kde.org/D8379 M +5 -0 core/document.cpp M +22 -0 core/generator.cpp M +25 -0 core/generator.h M +4 -0 core/generator_p.h M +17 -5 core/page.cpp M +12 -1 generators/poppler/CMakeLists.txt M +3 -0 generators/poppler/config-okular-poppler.h.cmake M +66 -2 generators/poppler/generator_pdf.cpp https://commits.kde.org/okular/a2f5560c007648ffe753851fbb575d5c8afee6e1