PDF Page Rendering Caching via Fixed Block Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing PDF page rendering and caching methods are inefficient, leading to slow rendering and stuttering when browsing PDF pages, especially when complex PDF objects are involved.

Innovation Solution

A method that uniformly divides a PDF page into fixed blocks, caches rendering results for each block, and uses cached images for automatic splicing during screen refresh, reducing the need for repeated rendering.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the entire PDF page is rendered every time, then the display is complete and accurate, but the rendering time increases and causes stuttering

Engineering Contradiction:
Improvedisplay completenessVSAvoidrendering time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent divides the PDF page into multiple fixed blocks (e.g., 9 blocks in a 3x3 grid), allowing the system to render only the blocks that need to be updated rather than the entire page. This segmentation enables partial rendering, reducing rendering time while maintaining display completeness for the visible region.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent pre-divides the page into fixed blocks and establishes a caching mechanism before actual rendering occurs. When rendering is needed, the system checks which blocks are already cached and only renders the necessary blocks, avoiding redundant rendering of previously displayed content.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If caching is implemented to improve rendering speed, then the refresh efficiency increases, but the memory consumption increases

Engineering Contradiction:
Improverendering efficiencyVSAvoidmemory consumption
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent segments the page into fixed blocks and caches only the necessary blocks rather than caching the entire page. This allows the system to maintain a manageable cache size while still improving rendering efficiency for the visible region.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements local caching at the block level, where each block can be independently cached and managed. This allows selective caching based on visibility and usage patterns, optimizing the balance between memory consumption and rendering efficiency.

Inventive Principle:
Principle #3Local quality

3Productivity

If the page is divided into fixed blocks for caching, then the rendering efficiency improves, but the complexity of the rendering system increases

Engineering Contradiction:
Improverendering efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent uses a fixed block division approach (e.g., 9 blocks in a 3x3 grid) that provides a simple and regular structure. This segmentation strategy is easier to implement than more complex tiling approaches, as the fixed block sizes and patterns simplify the caching and rendering logic.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The fixed block structure serves multiple functions: it defines the caching units, determines the rendering regions, and establishes the display grid. This multi-functionality reduces the need for separate complex mechanisms, simplifying the overall system while maintaining high rendering efficiency.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS20250200126A1PDF page rendering caching method
Publication Date: 2025.06.19 FUJIAN FOXIT SOFTWARE DEV LTD
  • US20250200126A1 patent drawing
  • US20250200126A1 patent drawing
  • US20250200126A1 patent drawing

AI summary

Disclosed in the present invention is a PDF page rendering caching method. The method comprises: S1, uniformly dividing an entire PDF page into a plurality of fixed blocks; S2, when the page is first loaded, performing first rendering on a portion to be displayed, and if the width of a rendering result region intersecting any fixed block is equal to the width of the corresponding fixed block, adding a rendering result in the fixed block to a cache list of the fixed block; S3, when the page needs to be rendered again, traversing and checking a cache list stored in each fixed block, and if there is an intersection region with a cached region, rendering a region outside the intersection region, and splicing the current rendered region and the intersection region to output a current rendering result; S4, if the width of the rendered region in S3 intersecting any fixed block is equal to the width of the corresponding fixed block, adding a rendering result in the fixed block to a cache list of the fixed block; and S5, repeating S3 and S4 until the rendering is ended.