Skip to content

Conversation

@andiwand
Copy link
Member

@andiwand andiwand commented Jan 1, 2025

Currently it is only possible to process the whole PDF at once which can take a significant amount of time for big files. One of the biggest time consumers is rendering of the background images, which is practically just rendering a single page. This (should) be independent from generating the HTML and from rendering other pages.

In this PR I introduce a new config param delay_background which generates the HTML for the background images as if they have been rendered already but then lets the user call a new HTMLRenderer::renderPage function themselves for the actual rendering and storing of the image.

This required to change SplashBackgroundRenderer a bit as it assumed the background image might not be the full page. I did not see a good reason for this (? potential problems might be discovered later) and changed it so it always expects a fully rendered background image. This also conflicts with the fallback renderer as we only know that the normal renderer failed after we tried. But I believe the fallback is only a workaround which we should not rely on in the best case anyways.

@andiwand andiwand changed the base branch from master to odr/main January 1, 2025 09:44
@andiwand andiwand force-pushed the delayed-background-rendering branch from fd57b92 to 98dad6b Compare January 1, 2025 09:48
@andiwand andiwand force-pushed the delayed-background-rendering branch from 98dad6b to f7aee77 Compare January 1, 2025 10:36
@andiwand andiwand force-pushed the delayed-background-rendering branch from f7aee77 to 1dad166 Compare January 1, 2025 10:46
@andiwand andiwand merged commit d7a9e30 into odr/main May 11, 2025
1 check failed
@andiwand andiwand deleted the delayed-background-rendering branch May 11, 2025 19:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants