Pointer-Based Data Field Access for Dynamic Document Printing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for generating page-oriented data for dynamic documents face a tradeoff between flexible pre-processing and fast, continuous printing, as they require significant memory allocation and data transfer between processing stages, which hampers performance and throughput in high-speed printing applications.

Innovation Solution

A computer system and method where a layout module is linked with data processing modules to load and process variable data by reference, reducing memory allocation and data transfer by only loading and processing specific data fields as needed, allowing flexible module configuration while minimizing memory usage and maintaining high-speed printing capabilities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If variable data is loaded completely into local memory at each processing stage, then data processing flexibility is improved, but memory usage and data transfer overhead increase significantly

Engineering Contradiction:
Improvedata processing flexibilityVSAvoidmemory usage
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent extracts only the specific data fields needed by each processing module from the complete variable data set, rather than loading all data into memory. The data input module loads variable data record-by-record and field-by-field, and each processing module receives only its required fields through pointers, eliminating the need to hold entire data sets in memory at each stage.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent segments the variable data processing into discrete fields and records, loading and processing only the necessary portions. Data is divided into individual fields (e.g., address, invoice information) that can be independently accessed and processed by different modules without requiring complete data sets in memory simultaneously.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If data is transferred between data store and local memory at each processing stage, then processing flexibility is improved, but processing speed and throughput decrease

Engineering Contradiction:
Improveprocessing flexibilityVSAvoidprinting throughput
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent enables continuous data processing by maintaining data in local memory and using pointers to pass references between modules without repeated disk I/O operations. The data input module loads data once into memory, and subsequent processing modules access their required fields through pointer references, eliminating repeated data transfer cycles between data store and memory.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The patent uses pointer references instead of physical data copies between modules. When a processing module needs data, it receives a pointer to the data field in memory rather than creating additional copies or requiring repeated reads from the data store, thus maintaining flexibility while minimizing data transfer overhead.

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If local memory is allocated and de-allocated at each processing stage, then module independence is improved, but processing overhead and time increase

Engineering Contradiction:
Improvemodule independenceVSAvoidprocessing overhead time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent creates a universal data structure in local memory that can be accessed by multiple processing modules simultaneously through pointers. Instead of each module requiring its own separate memory allocation, a single data structure serves all modules, eliminating repeated allocation and de-allocation cycles while maintaining module independence through pointer-based access control.

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

4Reliability

If complete variable data sets are processed at each stage, then data completeness is improved, but processing speed decreases due to handling unnecessary data

Engineering Contradiction:
Improvedata completenessVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies local quality by having each processing module receive and process only the specific data fields relevant to its function. For example, a formatting module receives only address fields, while an invoice module receives only financial data fields. This selective processing maintains data completeness for each module's needs while eliminating the overhead of processing complete data sets across all modules.

Inventive Principle:
Principle #3Local quality

Data Source

PatentEP2184684B1Generating page-oriented data for printing dynamic documents
Publication Date: 2019.06.12 QUADIENT GRP AG
  • EP2184684B1 patent drawingFigure 1~2
  • EP2184684B1 patent drawingFigure 3~4
  • EP2184684B1 patent drawingFigure 5

AI summary

For generating from variable data page-oriented data for printing dynamic documents, a layout module (13) is linked in series with one or more data processing modules (121, 12) to a data input module (11). The data input module (11) loads (S3) a part of the variable data into local memory and passes it by reference through the data processing modules (121, 122) to the layout module (13). The data processing modules (121, 122) are configured to read (S8c, S13c, S13f) a data field from the variable data in the local memory only in cases where the data field is to be processed by the respective data processing module. The layout module (13) generates (S8) the page-oriented data output from unprocessed and pre-processed data fields, defined in each case by a respective pointer from the data processing modules. Thereby, allocation and de-allocation of local memory is reduced and performance improved.