Disclosed herein are methods for digital document processing, and in particular to such methods that modifies on demand special information in a raster image, as well as corresponding apparatus and computer-readable medium.
A raster image processor (RIP) provides output data in a format that is suitable for rendering by an output device such as a printer. One suitable format is raw, binary dot patterns forming a bitmap. Rendering by the output device may include printing by a printer, and displaying on a screen. The raster image processor receives input of one or more page descriptions. The page descriptions includes information about fonts, graphics, and the like that describe the appearance of each page. The page descriptions may be in a high level language or even another bitmap of higher or lower resolution than the output device. Some examples of high level page description languages are PostScript (PS), Portable Document Format (PDF) and Extensible Markup Language (XML) Paper Specification (XPS). The raster image processor may be implemented as software, firmware, and/or hardware. Typically, the raster image processor resides in a digital front end (DFE). The raster image processor performs raster image processing (RIPping). Raster image processing is the process of translating the page descriptions into a RIPped image or into a bitmap for output by the output device like desktop printer.
Printed documents often require additional information in the form of symbolic encodings or marks to provide additional data about the document that may or may not have anything to do with the content of the document. For example, the information can be tracking data, workflow information such as creator and device used for creating the document, and/or even security designations. This data might even be instructions for further processing such as finishing, packing, or routing that need to be read further down line in the process.
As the number of applications grows so do the number of additional marks that need to be added to the output image of the document to be printed. These marks can become distracting or even unattractive. Current attempts to solve this growing problem have included data compression in the symbols used or different toners for marking that may be harder to see by the normal eye. One major drawback that these approaches have is they don't have the capability to change the special information on demand. An example would be a document which is marked with printing tracking information that is subsequently changed. In the current print process it is difficult to alter the page content so such a document would have to be processed offline to accommodate the post marking changes.
According to aspects of the embodiments, there is provided methods of decomposing and modifying a bitmap image before it is rendered by an output device. Segments of a print image are determined by an aptly programmed processor. In a bitmap driver process, dimensions and location of an area on each print image is processed so as to form objects that can be deleted, modified, or replaced. The process allows for the addition of objects such as tracking or security and the processing of objects to interpret the data found, remove it, and possibly replace it with data based on what was read. These modified objects are embedded in the output bitmap image without increasing its size by reusing dimensions and location of selected areas of the print image.
Aspects of the embodiments disclosed herein relate to methods for decomposing and modifying a bitmap image before it is rendered by an output device, and corresponding apparatus and computer readable medium. The disclosed embodiments allow a user to decode information from a bitmap of a page that was about to be printed and to alter the page content according to the extracted information.
The disclosed embodiments include methods to manage at least one RIPped image during job workflow before printing by performing the steps of sensing whether a modification of the at least one RIPped image has been selected; and if it is sensed that a modification of the at least one RIPped image has been selected, extracting information from the at least one RIPped image.
In another aspect, the disclosed embodiment is to a method to manage at least one RIPped image during job workflow wherein the modification is selected from a group comprising of deleting extracted information, deleting extracted information and adding additional information, adding additional information, embedding a control instruction in the at least one RIPped image.
In another aspect, the disclosed embodiment is a method to manage at least one RIPped image during job workflow further comprising forming an output bitmap image after modification of the at least one RIPped image.
In another aspect, the disclosed embodiment is to a method to manage at least one RIPped image during job workflow wherein the output bitmap image has a format compatible with one of TIFF, JPEG, PNG, BMP, EXIF, and WMP.
In another aspect, the disclosed embodiment is to a method to manage at least one RIPped image during job workflow wherein adding additional information is selected from a group comprising of operator identification (ID) information, printer identification (ID) information, time stamp information, watermark, tracking information, security feature and other information of value to the producer or consumer of the document.
The disclosed embodiments further include a print server for implementation by at least one machine for processing a job workflow, the print workflow server comprising a processor to execute instructions for processing the job workflow and to sense whether a modification of at least one RIPped image in a print job has been selected; and an interface to connect to the print workflow server so as to receive a modification print instruction; wherein the modification print instruction causes the processor to extract information from the at least one RIPped image and to modify the at least one RIPped image.
The disclosed embodiments further include an apparatus for controlling print processing of a document having at least one RIPped image, comprising a processor; and a storage device coupled to the processor, wherein the storage device contains instructions operative on the processor for: displaying a print user interface with at least one selectable print modification instruction; sensing selection of the at least one selectable print modification instruction; extracting information from the at least one RIPped image if it is sensed that a selection of the at least one selectable print modification instruction has been made; and applying the at least one selectable print modification instruction to the document.
The term “print engine” as used herein refers to a digital copier or printer, image printing machine, digital production press, document processing system, image reproduction machine, bookmaking machine, facsimile machine, multi-function machine, display system, or the like and can include several marking engines, feed mechanism, scanning assembly as well as other print media processing units, such as paper feeders, finishers, and the like.
The term “print media” generally refers to a usually flexible, sometimes curled, physical sheet of paper, plastic, or other suitable physical print media substrate for images, whether precut or web fed. For the purposes of this document, the term is expanded to include display devices.
The image input device 4 may include or be operatively coupled with conversion components for converting the image-bearing documents to image signals or pixels or such function may be assumed by the printing engine 6 or by a stand alone scanner. The system 2 includes an integral user interface 10 with a display 11 and suitable operator/user controls such as buttons, touch screen, and the like. The DFE printer controller 8 provides the output pixel data from memory to a print engine 6 that is fed with a print media sheets 12 from a feeding source 14 such as a paper feeder which can have one or more print media sources or paper trays 16, 18, 20, 22, each storing sheets of the same or different types of print media 12 on which the marking engine 6 can print. The exemplary print engine 6 includes an imaging component 44 and an associated fuser 48, which may be of any suitable form or type, and may include further components which are omitted from the figure so as not to obscure the various aspects of the present disclosure. In one example, the print engine 6 may include a photoconductive insulating member or photoreceptor which is charged to a uniform potential and exposed to a light image of an original document to be reproduced via an imaging laser under control of a controller of the DFE 8, where the exposure discharges the photoconductive insulating surface of the photoreceptor in exposed or background areas and creates an electrostatic latent image on the photoreceptor corresponding to image areas of the original document. The electrostatic latent image on the photoreceptor is made visible by developing the image with an imaging material such as a developing powder comprising toner particles via a development unit, and the customer image is then transferred to the print media 12 and permanently affixed thereto in the fusing process.
In a multicolor electrophotographic process, successive latent images corresponding to different colors can be formed on the photoreceptor and developed with a respective toner of a complementary color, with each color toner image being successively transferred to the paper sheet 12 in superimposed registration with the prior toner image to create a multi-layered toner image on the printed media 12, and where the superimposed images may be fused contemporaneously, in a single fusing process. The fuser 48 receives the imaged print media from the image-forming component and fixes the toner image transferred to the surface of the print media 12, where the fuser 48 can be of any suitable type, and may include fusers which apply heat or both heat and pressure to an image. Printed media from the printing engine 6 is delivered to a finisher 30 including one or more finishing output destinations 32, 34, 36 such as trays, stackers, pans, and the like. A print media transporting system or network or highway 40 of the document processing system 2 links the print media source 14, the print engine 6, and the finisher 30 via a network of flexible automatically feeding and collecting drive members, such as pairs of rollers 42, spherical nips, air jets, or the like, along with various motors for the drive members, belts, guide rods, frames, and the like (not shown), which, in combination with the drive members, serve to convey the print media 12 along selected pathways at selected speeds. Print media 12 is thus delivered from the source 14 to the print engine 6 via a pathway 46 common to the input trays 16, 18, 20, 22, and is printed by the imaging component 44 and fused by the fuser 48, with a pathway 46 from the print engine 6 merging into a pathway 70 which conveys the printed media 12 to the finisher 30, where the pathways 46, 48, 70 of the network 40 may include inverters, reverters, interposers, bypass pathways, and the like as known in the art. In addition, the print engine 6 may be configured for duplex or simplex printing and a single sheet of paper 12 may be marked by two or more print engines 6 or may be marked a plurality of times by the same marking engine 6, for instance, using internal duplex pathways (not shown).
The document processing system 100 is operative to perform these scanning and printing tasks in the execution of print jobs 80, which can include printing selected text, line graphics, images, machine ink character recognition (MICR) notation, and the like, on either or both of the front and back sides or pages of one or more media sheets 12. An original document or image or print job or jobs 80 can be supplied to the document processing system 100 in various ways. In one example, the built-in optical scanner 4 may be used to scan an original document such as book pages, a stack of printed pages, or so forth, to create a digital image of the scanned document that is reproduced by printing operations performed by the document processing system 100 via the print engine 6. Alternatively, the print jobs 80 can be electronically delivered to the system controller via a memory stick, network, or other well know communication means, for instance, whereby a network user can print a document from word processing software running on a network computer such as desktop computer 402 shown in
The splitter 120 any component thereof, whether implemented in the DFE controller 8 or in a desktop computer 402 operatively associated with the document processing system 100, may be any suitable hardware, software, firmware, logic, or combinations thereof that are adapted, programmed, or otherwise configured to implement the functions illustrated and described herein, and may be embodied as computer-executable instructions of a computer-readable media, such as in memory of the desktop computer 402, the DFE 8, or other memory storage media operatively coupled with a computer for execution of such instructions. For example, the controller 8 and the splitter 120 in certain embodiments may be implemented, in whole or in part, as software components and may be implemented as a set of sub-components or objects including computer-executable instructions of a memory, disk, or other computer-readable media that can be executing on one or more hardware platforms such as one or more computers including one or more processors, data stores, memory, and the like of the document processing system 100, or the splitter 120 may be computer-executable instructions executing in one or computers. The splitter 120, moreover and components thereof, may be executed on the same computer or processor, or may be implemented in distributed fashion in two or more processing components that are operatively coupled with one another to provide the functionality and operation described herein.
Job processor 105 receives incoming print jobs 80 via a queue 110 from one or computers or from scanning done at the document processing system 100. The queue 110 may be a single queue or multiple queues. Both queues may be implemented as indexes into one queue. Alternatively a job in the print queue may simply have a held status without there actually being a hold queue. The digital front end 8 may include additional queues. Typically, the system controller assigns jobs from clients to the queue 110 and the operator schedules and releases jobs to a print queue like queue 110. When a job is released to the print queue, the system controller passes the released job to the raster image processor or modification processor 140 for modification and/or raster image processing. A splitter 120 receives the print job file, such as a PDL file and the like, and from this constructs a plurality of chunk files for subsequent RIP and other processing 130. A modification processor 140 provides a user interface,
The system 400 may also include a keyboard 405 functioning as an input device. The keyboard may be replaced or supplemented by the input devices as illustrated in
The system 400 may also include a display 407 functioning as an output device for displaying images generated or received by the computer 402. The display 407 may display images to be viewed by a user, such as various application programs, a user interface (UI), text, photographic images, and the like. For example, the display may generate a user interface in response to a print server stored in memory 440, such as a user interface for the print server. The print server could also be stored in a memory in a network that the computer 402 is connected to, such as in a network server.
The system 400 may have a printer 3 connected thereto for printing data such as images, text, and the like. In response to a user directing the computer 402 to print, for example. In response to such a print command, the processor will typically cause the processing system 404 to communicate 408 with the printer to perform the needed printing.
The system 400 may be connected to a network, such as such as an intranet, the Internet, a wireless network, and the like. In addition, the system 400 may be connected to a plurality of printers such as printer 3. The plurality of printers may be of a same printer type or of varying printer types.
The processing system 404 may include at least one conventional processor 430 or microprocessor that interprets and executes instructions. The processor 430 may be a general purpose processor or a special purpose integrated circuit, such as an ASIC, and may include more than one processor section. Additionally, the system 440 may include a plurality of processors 430.
Memory 420 may be a random access memory (RAM) or another type of dynamic storage device that stores information and instructions for execution by processor 430. Memory 420 may also include a read-only memory (ROM) which may include a conventional ROM device or another type of static storage device that stores static information and instructions for processor 430. The memory 420 may be any memory device that stores data for use by system 440.
Input/output devices 440 (I/O devices) may include one or more conventional input mechanisms that permit a user to input information to the system 440, such as a microphone, touchpad, keypad, keyboard, mouse, pen, stylus, voice recognition device, buttons, and the like, and output mechanisms such as one or more conventional mechanisms that output information to the user, including a display, one or more speakers, a storage medium, such as a memory, magnetic or optical disk, disk drive, a printer device, and the like, and/or interfaces for the above. The display card 450 may drive an LCD or CRT display as used on many conventional computing devices, or any other type of display device.
The system 440 may perform functions in response to processor 430 by executing sequences of instructions or instruction sets contained in a computer-readable medium, such as, for example, memory 420. Such instructions may be read into memory 420 from another computer-readable medium, such as a storage device, or from a separate device via a communication interface, or may be downloaded from an external source such as the Internet. The system 400 may be a stand-alone system, such as a personal computer, or may be connected to a network such as an intranet, the Internet, and the like. Other elements may be included with the system 400 as needed.
The memory 420 may store instructions that may be executed by the processor to perform various functions. For example, the memory may store s instructions operative on the processor to display a print user interface with at least one selectable print modification instruction; to sense selection of the at least one selectable print modification instruction; to extract information from the at least one RIPped image if it is sensed that a selection of the at least one selectable print modification instruction has been made; and to apply the at least one selectable print modification instruction to the document having at least one RIPped image.
Embodiments as disclosed herein may also include computer-readable media for carrying or having computer-executable instructions or data structures stored thereon. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code means in the form of computer-executable instructions or data structures. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or combination thereof) to a computer, the computer properly views the connection as a computer-readable medium. Thus, any such connection is properly termed a computer-readable medium. Combinations of the above should also be included within the scope of the computer-readable media.
Computer-executable instructions include, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. Computer-executable instructions also include program modules that are executed by computers in stand-alone or network environments. Generally, program modules include routines, programs, objects, components, and data structures, and the like that perform particular tasks or implement particular abstract data types. Computer-executable instructions, associated data structures, and program modules represent examples of the program code means for executing steps of the methods disclosed herein. The particular sequence of such executable instructions or associated data structures represents examples of corresponding acts for implementing the functions described therein.
It will be appreciated that various of the above-disclosed and other features and functions, or alternatives thereof, may be desirably combined into many other different systems or applications. Also that various presently unforeseen or unanticipated alternatives, modifications, variations or improvements therein may be subsequently made by those skilled in the art which are also intended to be encompassed by the following claims.