Print file preprocessing mechanism
The print file preprocessing mechanism addresses inefficient processing of complex print job files by generating metadata and optimizing scan conversion rules, ensuring uninterrupted and efficient print output in printing systems.
Patent Information
- Application Number
- JP2025029711
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-01
- Filing Date
- 2025-02-27
- Publication Date
- 2025-09-11
- Estimated Expiration
- 2045-02-27
AI Technical Summary
Inefficient processing of complex or improperly structured print job files leads to suspended print output in printing systems, as the print controller struggles to generate a sufficient data stream to maintain the intended print output rate.
A print file preprocessing mechanism that includes a file preprocessing module to traverse print job files, generate print job structure metadata, and utilize worker threads to process page elements in parallel, enabling efficient print processing by identifying and optimizing scan conversion rules for each page.
Enhances print processing efficiency by reducing computational burden on the print controller, allowing for faster and uninterrupted print output by identifying and optimizing scan conversion rules for each page, thus maintaining the intended print output rate.
Smart Images

Figure 2025133713000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to the field of image reproduction, and in particular to image processing for printing systems. [Background technology]
[0002] In various document presentation systems, such as printing systems, it is common to process (e.g., interpret and rasterize) print data to generate a bitmap representation of each sheet-side image of a document by processing a sequence of data objects. The data objects (or elements) are typically included in a print job defined in a page description language (PDL) or other suitable encoding, represented as rectangular regions of pixels, at some point before being written to the bitmap. An improperly structured or complex print job file can cause the printing system to undesirably pause printing because the print controller cannot process the print job fast enough to generate a sufficient data stream to allow the print engine to maintain the intended print output rate. Summary of the Invention
[0003] In one embodiment, a system is disclosed that includes one or more processors that receive a print job file, the print job file including page content data associated with each page of the print job file, receive print job structure metadata, process the print job file using the print job structure metadata to generate page image data for the page content data, the print job structure metadata including page element metadata associated with each of a plurality of pages of the page content data. [Brief explanation of the drawings]
[0004] A better understanding of the present invention can be obtained from the following detailed description taken in conjunction with the following drawings.
[0005] [Figure 1] FIG. 1 is a block diagram of an embodiment of a printing system.
[0006] [Figure 2] 1 shows a conventional print control unit.
[0007] [Figure 3A] FIG. 2 shows a block diagram of a print control unit according to an embodiment.
[0008] [Figure 3B] FIG. 2 shows a block diagram of a print control unit according to an embodiment.
[0009] [Figure 3C] 1 illustrates an embodiment of a network-implemented file preprocessing module.
[0010] [Figure 4] 1 illustrates one embodiment of a file module.
[0011] [Figure 5] 1 illustrates one embodiment of traversal logic.
[0012] [Figure 6] FIG. 4 is a flow diagram illustrating one embodiment of a process performed by a file processing module.
[0013] [Figure 7] FIG. 1 is a flow diagram illustrating one embodiment of a traversal process.
[0014] [Figure 8] FIG. 10 is a flow diagram illustrating one embodiment of performing an element evaluation process.
[0015] [Figure 9] 1 illustrates one embodiment of print job structure metadata.
[0016] [Figure 10] FIG. 1 is a flow diagram illustrating one embodiment of processing a print job file.
[0017] [Figure 11] 1 illustrates one embodiment of an interpreter module.
[0018] [Figure 12] FIG. 10 is a flow diagram illustrating one embodiment of a process performed by an interpreter module.
[0019] [Figure 13] 1 illustrates an embodiment of a computer system. DETAILED DESCRIPTION OF THE INVENTION
[0020] A print file preprocessing traversal mechanism is described. In the following description, for purposes of illustration, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to one skilled in the art that the present invention may be practiced without some of these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid obscuring the underlying principles of the present invention.
[0021] References herein to "one embodiment" or "an embodiment" mean that a particular feature, structure, or characteristic described in connection with an embodiment is included in at least one embodiment of the invention. The appearances of the phrase "in one embodiment" in various places in the specification do not necessarily all refer to the same embodiment.
[0022] 1 is a block diagram of one embodiment of a printing system 130. A host system 110 communicates with the printing system 130 to print sheet images 120 onto print media 180 by a printer 160 (e.g., one or more print engines) using print job structure metadata 190. The print media 180 may include paper, card stock, paperboard, corrugated board, film, plastic, synthetic fibers, fabric, glass, composite materials, or any other tangible medium suitable for printing. The format of the print media 180 may be continuous or cut sheets or any other format suitable for printing. The printer 160 may be an inkjet or other suitable printer type.
[0023] In one embodiment, printer 160 includes one or more print heads 162, each containing one or more pel forming elements 165 that use marking material applied to the print medium to directly or indirectly (e.g., by transfer of the marking material through an intermediary) form a representation of a picture element (pel) on print medium 180. In an inkjet printer, pel forming elements 165 are tangible devices (e.g., inkjet nozzles) that eject ink onto print medium 180.
[0024] According to one embodiment, the PEL forming elements may be grouped on one or more print heads (e.g., a print head array). The PEL forming elements 165 may be stationary (e.g., as part of a fixed print head) or moving (e.g., as part of a print head that moves across the print medium 180) as a matter of design choice. In further embodiments, the PEL forming elements 165 may be assigned to one of one or more color planes corresponding to a type of marking material (e.g., cyan, magenta, yellow, black K (CMYK)). These types of marking materials may be referred to as primary colors.
[0025] Printer 160 may be a multi-pass printer (e.g., dual-pass, three-pass, four-pass, etc.) in which multiple sets of pel forming elements 165 print the same area of a printed image on print medium 180. In such embodiments, the sets of pel forming elements 165 may be arranged on the same physical structure (e.g., an array of nozzles on an inkjet printhead) or on separate physical structures. The resulting print medium 180 may be printed in color, including black and white (e.g., cyan, magenta, yellow, and black (CMYK) and secondary colors obtained using combinations of two primary colors (e.g., red, green, blue)), and / or in any number of shades of gray. Host system 110 may include any computing device, such as a personal computer, a server, or a digital imaging device such as a digital camera or scanner.
[0026] Sheet image 120 may be any file or data that describes how an image on a sheet of print media 180 should be printed. For example, sheet image 120 may consist of a print job file containing Portable Document Format (PDF) data, PostScript data, Printer Command Language (PCL) data, and / or any other printer language data. Print controller 140 processes the sheet image to generate bitmap 150 for transmission to printer 160. Bitmap 150 may be a halftone bitmap (e.g., a compensated halftone bitmap generated from compensated halftones or an uncompensated halftone bitmap generated from uncompensated halftones) for printing on print media 180. Printing system 130 may be a high-speed printer operable to print relatively high volumes (e.g., 100 pages per minute).
[0027] Print medium 180 may be continuous form paper, cut sheet paper, and / or any other tangible medium suitable for printing. Printing system 130, in one general form, includes printer 160 that renders (e.g., with ink, etc.) bitmap 150 onto print medium 180 based on sheet image 120. While shown as a component of printing system 130, other embodiments may feature printer 160 as a separate device communicatively coupled to print controller 140.
[0028] Print controller 140 may be any system, device, software, circuitry, and / or other suitable component operable to convert sheet image 120 to generate bitmap 150 for printing onto print medium 180. In this regard, print controller 140 may include processing and data storage capabilities.
[0029] FIG. 2 illustrates a conventional print controller. The print controller includes an interpreter module operable to interpret, rasterize (e.g., render), or convert a print job image (e.g., a raw sheetside image such as sheet image 120) into a sheetside bitmap. The sheetside bitmaps generated by the interpreter module for each primary color are each a two-dimensional array of pels representing the print job image (e.g., a Continuous Tone Image (CTI)) and are also referred to as complete sheetside bitmaps. A two-dimensional pel array is considered a "complete" sheetside bitmap because the bitmap contains the entire set of pels for the image. The interpreter module is operable to interpret or rasterize multiple raw sheetsides simultaneously so that the rasterization rate substantially matches the imaging rate of the production print engine.
[0030] The halftone module is operable to represent the sheetside bitmap as a halftone pattern of ink. For example, the halftone module may convert pels (also known as pixels) into a halftone pattern of CMYK inks for application to paper. The halftone design may include a predefined mapping of input pel gray levels to output drop sizes (e.g., commanded ink drop sizes delivered to the printhead) based on the location of the pels.
[0031] In one embodiment, the halftone design may include a finite set of transition thresholds between a finite set of successively larger drop sizes, starting from 0 and ending at the largest drop size. The halftone design may be implemented as a threshold array (e.g., a halftone threshold array), such as a single-bit threshold array or a multi-bit threshold array. In another embodiment, the halftone design may be implemented as a three-dimensional lookup table with all included gray level values.
[0032] Processing an improperly structured print job file using a conventional print controller typically results in extensive processing that can cause suspended print output (e.g., printer clutching.) For example, an interpreter module is required to traverse the print job file during rasterization to perform various operations such as determining and performing line scan conversion.
[0033] According to one embodiment, a print controller 140 is provided that includes a pre-processing mechanism that traverses a print job file and performs scan conversion analysis and detection before rasterizing the file. Figures 3A and 3B illustrate embodiments that implement the print controller 140. Figure 3A illustrates a generalized form of the print controller 140 (e.g., a DFE or digital front end) that includes a file pre-processing module 310, an interpreter module 312, and a halftone module 314, while Figure 3B illustrates an embodiment with print controllers 140A and 140B.
[0034] In the embodiment of FIG. 3B, print controller 140A includes file preprocessing module 310, and print controller 140B includes interpreter module 312 and halftone module 314. Print controllers 140A and 140B may be implemented within the same printing system 130 (as shown) or may be implemented separately. Interpreter module 312 and halftone module 314 perform similar functions as those described above with reference to FIG. 2. However, file preprocessing module 310 is included to traverse received print job files to generate print job structure metadata 190 that is made available to assist in performing efficient print processing (e.g., runtime print processing or print-time processing) for printing of the print job data in printing system 130.
[0035] Although shown as a component within print controller 140, other embodiments may feature file preprocessing module 310 included within a separate device communicatively coupled to print controller 140. For example, FIG. 3C illustrates an embodiment of file preprocessing module 310 implemented on network 380. As shown in FIG. 3C, file preprocessing module 310 is included within computing system 305 and transmits data to print system 130 via cloud network 350.
[0036] FIG. 4 illustrates one embodiment of the file preprocessing module 310. According to one embodiment, the file preprocessing module 310 receives a print job file containing page content data, traverses each of multiple subset ranges (e.g., subranges) of the page content data (or page elements) to generate page element metadata, aggregates the page element metadata to generate print job structure metadata, and stores the print job structure metadata. In such an embodiment, the print job structure metadata is stored separately from the print job file. A page element is a print data object that controls line art and is associated with the page on which the processed line art will be displayed. A page element appears as a sequence of operators and their operands in the print data file. In the PDF architecture, page elements are known as graphic objects, and a specific type is a path object. A path object is an arbitrary shape composed of lines, rectangles, and Bézier curves. A path object terminates with one or more painting operators that specify whether the path is stroked, filled, used as a clipping boundary, or some combination of operations.
[0037] Generating the page element metadata includes evaluating the page elements in the page content data to identify associated logical pages of the print job file having markings indicated by the page elements. Generating the page element metadata further includes determining properties of the page elements (e.g., properties of the page elements).
[0038] 4 , file pre-processing module 310 includes allocation logic 410, traversal logic 420, aggregation logic 430, processing threads 440, and metadata storage 450. In one embodiment, allocation logic 410 implements management thread 444 within processing threads 440 to determine the amount of worker threads 446 available to process the print job file, divides the print job file into multiple subset ranges based on the amount of worker threads 446, and assigns each subset range to a worker thread 446. For example, based on a determination that 10 worker threads 446 are available, the print job file can be divided into 10 subset ranges, and each subset range is assigned to a worker thread 446.
[0039] In a further embodiment, a subset range identifier (subset range ID) is assigned to each subset range in the print job file before being assigned to a corresponding worker thread 446 with a unique ID (e.g., worker#ID). For example, the first subset range is assigned to the first subset range ID (e.g., ID=0), which is then assigned to the first worker thread 446 (e.g., worker#0). The number of pages assigned to each worker thread 446 is determined by dividing the total amount of pages in the print job by the number of worker threads 446.
[0040] In one embodiment, the starting page for each worker is determined by multiplying the subset range ID by the number of pages assigned to each worker. A technical advantage of determining the number of pages assigned to each worker thread 446 in this manner is that each worker thread 444 makes this determination as part of its work, and the management thread 444 is not burdened with this computational task. As used herein, a processing thread includes a sequence of instructions that can be independently executed by a processor (e.g., a central processing unit (CPU) or a graphics processing unit (GPU)) to perform processing. Furthermore, each processing thread can simultaneously perform tasks in parallel. Although described herein as worker threads, other embodiments can feature independent worker processes that can simultaneously perform tasks in parallel. A technical advantage of using multiple threads or processes to perform tasks in parallel is faster completion of pre-processing.
[0041] The traversal logic 420 implements worker threads 446 to traverse each associated subrange and evaluate page elements within each page of the subrange. A subrange is a subset of all pages that make up a print job. FIG. 5 illustrates one embodiment of the traversal logic 420, including element evaluation logic 510. According to one embodiment, the evaluation logic 510 causes each worker thread 446 to evaluate page elements on each page (e.g., logical page) included in its assigned subrange to determine properties of the page elements. In such an embodiment, evaluating the page elements includes determining the presence of thin lines (e.g., thin lines) based on page element properties that determine line width.
[0042] In a further embodiment, determining the presence of a thin line includes determining line attributes (e.g., determining a line width and comparing the determined line width to one or more line width thresholds). In this embodiment, the line attributes determine whether the line is eligible for scan conversion, and if so, which scan conversion rule (e.g., over scan conversion (OSC) rule or center scan conversion (CSC) rule) is used. In yet a further embodiment, determining the presence of a thin line includes determining whether the page element includes a fill painting operator, and if so, applying a clipping path intersection evaluation before performing the line width comparison.
[0043] As used herein, overscan conversion rules consider any pixel whose square region intersects a shape to be inside the shape, regardless of the size of the intersection, while centerscan conversion rules consider any pixel whose center point intersects the shape to be inside the shape. Thin lines benefit from centerscan conversion processing in that they are rasterized as is. Thin lines do not benefit from overscan conversion processing because overscan conversion processing causes portions of thin lines to expand and tend to abut adjacent lines or text after rasterization rather than being separated. However, because overscan conversion processing can be performed faster than centerscan conversion processing, centerscan conversion processing should only be used for pages that will benefit from it, improving overall print job processing efficiency. In one embodiment, the evaluation logic 510 generates page element metadata that is later used by the interpreter 312 to determine which, if any, overscan or centerscan rules to implement during rasterization based on a minimum line width, and whether that minimum width results from how fill painting operators and clipping path intersections are performed to create artificial thin lines that may expose rasterization limitations. Thus, as a result of the evaluation process, each worker thread 446 collects line width information for each page in its processed subrange as specific page content data.
[0044] 4 , aggregation logic 430 implements manager thread 444 to receive specific page content data from each worker thread 446 and generate print job structural metadata. In one embodiment, the print job structural metadata includes an aggregation of page element metadata used by interpreter module 312 to identify the page, enable / disable scan conversion, and, if enabled, inform which scan conversion rules will be used. In a further embodiment, aggregation logic 430 stores the print job structural metadata in metadata store 450. In such an embodiment, the print job structural metadata is stored separately from the print job file.
[0045] 6 is a flow diagram illustrating one embodiment of a process 600 performed for file pre-processing management. Process 600 may be performed by processing logic, which may include hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software such as instructions executing on a processing device, or a combination thereof. In one embodiment, process 600 is performed by a file pre-processing module via management thread 444.
[0046] At processing block 610, a print job file (e.g., a PDF file) is received. At processing block 620, the amount of worker threads available for traversing the print job file is determined. At processing block 630, each worker thread 444 is assigned a subset range ID. At this point, each worker thread 444 is ready to perform traversal operations on its assigned subrange of the print job file. A technical advantage of assigning multiple processing threads, each to a respective one of multiple subset ranges, is that pre-processing is completed faster.
[0047] The page element metadata is received at processing block 640 after the traversal operations are completed in each worker thread 444. At processing block 650, the particular page content data is aggregated to generate print job structure metadata. At processing block 660, the print job structure metadata is stored (e.g., in metadata store 450). A technical advantage of generating print job structure metadata is that it is available (e.g., sent to print controller 140 or 140B) to aid in processing the corresponding print job file at print time. An appropriate print controller can directly identify page elements and corresponding pages from the print job structure metadata without the burden of traversing the corresponding print job that would otherwise be required.
[0048] 7 is a flow diagram illustrating one embodiment of a traversal process 700. Process 700 may be performed by processing logic, which may include hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software such as instructions executing on a processing unit, or a combination thereof. In one embodiment, process 700 is performed by traversal logic 420 in each worker thread 444.
[0049] At processing block 710, the amount of pages in the print job file is determined, and a subset range of pages for each worker thread 444 may be determined as described above. At processing block 720, embedded page resources are searched for pages within the traversed subrange. In one embodiment, the embedded page resources may include embedded input profiles, output profiles, lists of spot colors or fonts on each page, etc. At processing block 730, page content data (or page elements) are searched for the page. At processing block 740, each page element on the page is evaluated based on the embedded page resources.
[0050] 8 is a flow diagram illustrating one embodiment of an element evaluation process 800. Process 800 may be performed by processing logic, which may include hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software such as instructions executing on a processing unit, or a combination thereof. In one embodiment, process 800 is performed by element evaluation logic 510 on each worker thread 446 prior to rasterization.
[0051] At decision block 810, a determination is made as to whether the element being evaluated is within a path. If not, no further evaluation of the element is necessary and processing is complete. Otherwise, at decision block 820, a determination is made as to whether the path uses a fill painting operator. At process block 830, based on the determination at decision block 820 that the path does not use a fill painting operator, a width stroke is calculated. However, based on the determination that the path does use a fill painting operator, at decision block 840, a determination is made as to whether one or more clipping paths intersect the element.
[0052] Based on a determination that one or more clipping paths intersect the element, a final clipped line width is calculated at process block 850. Otherwise, a line width is calculated at process block 830. At decision block 860, a determination is made as to whether the calculated line width or the unclipped line width contains a new minimum value. If so, at process block 870, the new minimum value is saved with the page information as part of the print job structure metadata, and processing is complete. A technical advantage of determining whether a path uses fill painting is that it takes into account the effects of intersecting page element line art, whose intersections may produce thin lines. Alternatively, a determination of the presence of thin lines on the page (as described below) may be performed, and the result stored as part of the print job structure metadata.
[0053] Returning to Figure 7, once the evaluation process is complete, at decision block 750 it is determined whether the evaluated element is the last element on the page. If not, control returns to processing block 740, where the next element on the page is evaluated. Otherwise, a determination is made as to whether the current page being traversed is the last page in the sub-range (decision block 760). If not, control returns to processing block 720, where the embedded page resource of the next page in the sub-range is retrieved. Otherwise, the page element metadata generated from the page element evaluation is sent (e.g., to aggregation logic 430) based on a determination that the current page is the last page in the sub-range (processing block 770).
[0054] As described above, aggregation logic 430 aggregates page element metadata into print job structure metadata using manager thread 444. FIG. 9 illustrates one embodiment of print job structure metadata. As shown in FIG. 9, print job file 910 includes 15 pages (P1-P15), each of which includes a page element (e.g., A, B, C), except for pages P7 and P14. In this embodiment, there are three worker threads 446 (Thread 1-Thread 3) to traverse the 15 pages by processing three subranges (e.g., P1-P5, P6-P10, and P11-P15). Each thread generates page element metadata 920 (e.g., 920a, 920b, and 920c). Print job structure metadata 930 includes an aggregation of page element metadata 920 generated by Thread 1-Thread 3.
[0055] As described above, the interpreter module 312 retrieves the print job structure metadata 930 and uses it to process (e.g., interpret and rasterize) the print job file 910 to generate the bitmap 150 at print time. A technical advantage of print-time processing (e.g., generating the bitmap 150) based on the print job file 910 and the print job structure metadata file 930 is that the print controller 140 processes the corresponding print job file where the page elements and corresponding pages have already been identified. This saves the print controller 140 the computational burden of additional traversals of the corresponding print job that would otherwise be required. In one embodiment, the print job structure metadata identifies the logical pages of the print job file to the RIP and enables or disables center-scan or over-scan conversion. In another embodiment, one or more processors use the print job structure metadata as conditional processing control data input to the RIP for the logical pages of the print job file (e.g., the presence of thin lines).
[0056] 10 is a flow diagram illustrating one embodiment of a process 1000. Process 1000 may be performed by processing logic, which may include hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software such as instructions executing on a processing device, or a combination thereof. In one embodiment, process 1000 is performed by interpreter 312.
[0057] A print job file is received at processing block 1010. Print job structure metadata is retrieved at processing block 1020. The print job file is processed using the print job structure metadata to generate a bitmap at processing block 1030. The bitmap is sent to the print engine at processing block 1040.
[0058] 11 illustrates one embodiment of interpreter module 312, which includes scan conversion logic 1110. Scan conversion logic 1110 uses print job structure metadata 930 to determine scan conversion rules to use when rasterizing page elements in print job file 910. In one embodiment, center scan conversion is enabled for pages that are eligible and would benefit from such conversion. Otherwise, center scan conversion is disabled and over scan conversion is performed.
[0059] 12 is a flow diagram illustrating one embodiment of a scan conversion process 1200. Process 1200 may be performed by processing logic, which may include hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software such as instructions executing on a processing device, or a combination thereof. In one embodiment, process 1200 is performed by interpreter 312.
[0060] At processing block 1210, a print job file and printer resolution are received (processing block 1210). At processing block 1220, print job structure metadata is retrieved. At processing block 1230, print instructions for the page are resolved based on the printer resolution. At decision block 1240, the print job structure metadata is used to make a determination as to whether the page is eligible for accurate scan conversion (e.g., whether the page contains page elements that are subject to known rasterization limitations, such as being filled with clipping path lines that cause artificial thin lines to be erased).
[0061] Overscan conversion processing is enabled when it is determined that the page is not eligible (processing block 1250). In this case, overscan conversion is performed. However, when it is determined that the page is eligible, a determination is made at decision block 1260 as to whether the page will benefit from center-scan conversion. As described above, pages containing thin lines benefit from center-scan conversion processing, while other pages do not. Thin lines are detected before rasterization by comparing calculated line widths (e.g., minimum line widths) with one or more line width thresholds. When it is determined that the page will benefit at processing block 1270, overscan conversion processing is enabled. However, when it is determined that the page will not benefit at processing block 1250, center-scan conversion is again disabled. At decision block 1280, a determination is made as to whether the current page is the last page in the print job file. If it is not the last page, control returns to processing block 1230, where the page print instructions are resolved for the next page. Otherwise, a print process may be performed in process block 1290 to generate bitmap 150 as described above.
[0062] 13 illustrates a computer system 1700. The printing system 130 and / or the compensation module 216 may be implemented in the computer system 900. The computer system 1700 includes a system bus 1720 for communicating information and a processor 1710 coupled to the bus 1720 for processing information.
[0063] Computer system 1700 further includes a random-access memory (RAM) or other dynamic storage element 1725 (herein referred to as main memory) coupled to bus 1720 for storing information and instructions to be executed by processor 1710. Main memory 1725 may be used for storing temporary variables or other intermediate information during execution of instructions by processor 1710. Computer system 1700 may also include a read only memory (ROM) and / or other static storage element 1726 coupled to bus 1720 for storing static information and instructions used by processor 1710.
[0064] A data storage device 1727, such as a magnetic or optical disk and its corresponding drive, may also be connected to computer system 1700 for storing information and instructions. Computer system 1700 may also be connected to a second I / O bus 1750 via I / O interface 1730. Multiple I / O devices may be connected to I / O bus 1750, including a display device 1724, input devices (e.g., alphanumeric input device, and cursor control device 1722). Communications device 1721 provides access to other computers (servers or clients). Communications device 1721 may include a modem, network interface card, or other well-known interface device, such as those used to connect to an Ethernet, token link, or other type of network.
[0065] Embodiments of the present invention may include various steps described above. The steps may be embodied in machine-executable instructions. The instructions may be used to cause a general-purpose or special-purpose processor to perform particular steps. Alternatively, the steps may be performed by dedicated hardware components that contain hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components.
[0066] Elements of the present invention may be provided as a machine-readable medium storing machine-executable instructions. The machine-readable medium may include, but is not limited to, floppy disks, optical disks, CD-ROMs, and magneto-optical disks, ROM, RAM, EPROM, EEPROM, magnetic or optical cards, propagation media, or other types of media / machine-readable media suitable for storing electronic instructions. For example, the present invention may be downloaded as a computer program from a remote computer (e.g., a server) to a requesting computer (e.g., a client) via a communications link (e.g., a modem or network connection) by a data signal embodied in a carrier wave or other propagation medium.
[0067] The following items and / or examples pertain to further embodiments or examples. Specific details in the examples may be used anywhere in one or more embodiments. Various features of different embodiments or examples can be combined in various ways, including some features and excluding other features, to suit a variety of different applications. Examples can include subject matter such as a method, a means for performing the acts of the method, at least one machine-readable medium containing instructions that, when executed by a machine, cause the machine to perform the acts of the method or the acts of an apparatus or system in accordance with the embodiments and examples described herein.
[0068] Some embodiments relate to Example 1 and are directed to a system including one or more processors, the one or more processors: receiving a print job file, the print job file including page content data associated with each page of the print job file; receiving print job structure metadata; and processing the print job file using the print job structure metadata to generate page image data for the page content data, the print job structure metadata including page element metadata associated with each of a plurality of pages of the page content data.
[0069] Example 2 includes the system of example 1, wherein the page element metadata includes page element properties associated with each of a plurality of page elements in the page content data.
[0070] Example 3 includes the system of Examples 1 and 2, wherein the one or more processors use the print job structure metadata as conditional process control data input for generating the page image data of the page content data.
[0071] Example 4 includes the system of Examples 1-3, wherein processing the print job file includes using the print job structure metadata to identify logical pages of the print job file corresponding to each of the plurality of page elements.
[0072] Example 5 includes the system of Examples 1-4, wherein processing the print job file further includes using the print job structure metadata to determine whether each of the identified logical pages is center scan converted (CSC) eligible or ineligible for CSC.
[0073] Example 6 includes the system of Examples 1-5, wherein processing the print job file further includes enabling overscan conversion (OSC) for each logical page that is ineligible for CSC.
[0074] Example 7 includes the system of Examples 1-6, wherein processing the print job file further includes using the print job structure metadata to determine whether each logical page that is eligible for a CSC will benefit from a CSC or will not benefit from a CSC.
[0075] Example 8 includes the system of Examples 1-7, wherein determining whether each of the CSC-eligible logical pages would benefit from a CSC includes determining whether the page element properties indicate the presence of one or more thin lines in each of the CSC-eligible logical pages.
[0076] Example 9 includes the system of Examples 1-8, wherein processing the print job file further includes enabling an OSC for each logical page that does not benefit from a CSC.
[0077] Example 10 includes the system of Examples 1-9, wherein processing the print job file further includes enabling center scan conversion for each logical page that benefits from CSC.
[0078] Example 11 includes the system of Examples 1-10, further including one or more print engines for printing the page image data.
[0079] Some embodiments relate to Example 12, further comprising at least one computer-readable medium storing instructions that, when executed by one or more processors, cause the processors to: receiving a print job file, the print job file including page content data associated with each page of the print job file; receiving print job structure metadata; The print job file is processed using the print job structure metadata to generate page image data for the page content data, and the print job structure metadata includes a computer-readable medium that includes page element metadata associated with each of a plurality of pages of the page content data.
[0080] Example 13 includes the computer-readable medium of example 12, wherein the page element metadata includes page element properties associated with each of a plurality of page elements in the page content data.
[0081] Example 14 is a block diagram illustrating a method for implementing the present invention, wherein the instructions, when executed by one or more processors, cause the processors to: 14. The computer-readable medium of Examples 12 and 13 includes the computer-readable medium for causing the print job structure metadata to be used as a conditional processing control data input for generating the page image data of the page content data.
[0082] Example 15 includes the computer-readable medium of Examples 11-14, wherein processing the print job file includes using the print job structure metadata to identify logical pages of the print job file corresponding to each of the plurality of page elements.
[0083] Example 16 includes the computer-readable medium of Examples 11-15, wherein processing the print job file further includes using the print job structure metadata to determine whether each of the identified logical pages is eligible for center scan conversion (CSC) or is ineligible for CSC.
[0084] Some embodiments relate to Example 17, comprising the steps of: receiving a print job file, the print job file including page content data associated with each page of the print job file; receiving print job structure metadata; processing the print job file using the print job structure metadata to generate page image data for the page content data, the print job structure metadata including page element metadata associated with each of a plurality of pages of the page content data; The method includes:
[0085] Example 18 includes the method of example 17, wherein the page element metadata includes page element properties associated with each of a plurality of page elements in the page content data.
[0086] Example 19 includes the method of examples 17 and 18, wherein the one or more processors use the print job structure metadata as conditional process control data input for generating the page image data of the page content data.
[0087] Example 20 includes the method of Examples 17-19, wherein processing the print job file includes using the print job structure metadata to identify a logical page of the print job file corresponding to each of the plurality of page elements.
[0088] Although many alterations and modifications of the present invention will become apparent to those skilled in the art after reading the foregoing description, it should be understood that any particular embodiments shown and described for purposes of illustration are not intended to be considered limiting. Accordingly, references to details of various embodiments are not intended to limit the scope of the claims. The claims recite only those features regarded as essential to the invention. [Explanation of symbols]
[0089] 110 Host System 120 sheet images 130 Printing System 140 Printing control unit 150 bitmaps 160 printers 162 print head 165 Pell-forming elements 180 Print media 190 Print Job Structure Metadata
Claims
1. 1. A system including one or more processors, the one or more processors comprising: receiving a print job file, the print job file including page content data associated with each page of the print job file; receiving print job structure metadata; a system for processing the print job file using the print job structure metadata to generate page image data for the page content data, the print job structure metadata including page element metadata associated with each of a plurality of pages of the page content data.
2. The system of claim 1 , wherein the page element metadata includes a page element property associated with each of a plurality of page elements in the page content data.
3. The system of claim 1 , wherein the one or more processors use the print job structure metadata as conditional process control data input for generating the page image data of the page content data.
4. 3. The system of claim 2, wherein processing the print job file includes using the print job structure metadata to identify a logical page of the print job file that corresponds to each of the plurality of page elements.
5. 5. The system of claim 4, wherein processing the print job file further comprises using the print job structure metadata to determine whether each of the identified logical pages is center scan converted (CSC) eligible or CSC ineligible.
6. The system of claim 5 , wherein processing the print job file further comprises enabling overscan conversion (OSC) for each logical page that is ineligible for CSC.
7. 6. The system of claim 5, wherein processing the print job file further comprises using the print job structure metadata to determine whether each logical page that is eligible for a CSC will benefit from a CSC or will not benefit from a CSC.
8. 8. The system of claim 7, wherein determining whether each of the CSC-eligible logical pages would benefit from a CSC comprises determining whether the page element properties indicate the presence of one or more thin lines in each of the CSC-eligible logical pages.
9. 10. The system of claim 8, wherein processing the print job file further comprises enabling OSC for each logical page that does not benefit from CSC.
10. 10. The system of claim 8, wherein processing the print job file further comprises enabling center scan conversion for each logical page that benefits from CSC.
11. The system of claim 1 , further comprising one or more print engines for printing the page image data.
12. At least one computer-readable medium storing instructions that, when executed by one or more processors, cause the processors to: receiving a print job file, the print job file including page content data associated with each page of the print job file; receiving print job structure metadata; a computer-readable medium for processing the print job file using the print job structure metadata to generate page image data for the page content data, the print job structure metadata including page element metadata associated with each of a plurality of pages of the page content data;
13. The computer-readable medium of claim 12 , wherein the page element metadata includes page element properties associated with each of a plurality of page elements in the page content data.
14. The instructions, when executed by one or more processors, cause the processors to:
13. The computer-readable medium of claim 12, further comprising: causing the print job structure metadata to be used as a conditional process control data input for generating the page image data for the page content data.
15. 14. The computer-readable medium of claim 13, wherein processing the print job file includes using the print job structure metadata to identify a logical page of the print job file that corresponds to each of the plurality of page elements.
16. 16. The computer-readable medium of claim 15, wherein processing the print job file further comprises using the print job structure metadata to determine whether each of the identified logical pages is center scan converted (CSC) eligible or CSC ineligible.
17. 1. A method comprising: receiving a print job file, the print job file including page content data associated with each page of the print job file; receiving print job structure metadata; processing the print job file using the print job structure metadata to generate page image data for the page content data, the print job structure metadata including page element metadata associated with each of a plurality of pages of the page content data; A method comprising:
18. The method of claim 17 , wherein the page element metadata includes page element properties associated with each of a plurality of page elements in the page content data.
19. 20. The method of claim 17, further comprising using the print job structure metadata as a conditional process control data input for generating the page image data of the page content data.
20. 20. The method of claim 18, wherein processing the print job file includes using the print job structure metadata to identify a logical page of the print job file that corresponds to each of the plurality of page elements.
Citation Information
Patent Citations
Method and system for providing index data for print job data
JP2006260536A
Information processing apparatus, printing control method, and program
JP2012128651A
Printing device, information processing device, printing system, printing control method, and program
JP2013028012A
Image forming apparatus, method, and program
JP2017147620A