The present invention relates to the field of printing, and in particular, to referencing secondary resources during print processing.
Printers are common peripheral devices attached to computers. A printer allows a computer user to make a hard copy of documents that are created in a variety of applications and programs on a computer. To function properly, a channel of communication is established (e.g., via a network connection) between the printer and the computer to enable the printer to receive commands and information from the host computer. Once a connection is established between a computer and the printer via a print server, printing software running on the server is implemented at a print server to manage a print job through the complete printing process.
Print jobs may be received at the printing software in the form of a page description language (PDL), which describes the appearance of a printed page in a higher level than an actual output bitmap. One such PDL is the Advanced Function Presentation (AFP™). AFP allows a page to be built using native objects and data objects whose formats are not be defined by the AFP presentation architecture, such as Portable Document Format (PDF), Tagged Image File Format (TIFF), Joint Photographic Experts Group (JPEG), etc.
These non-native (non-AFP) objects are normally processed as resources during print processing. Thus in AFP systems, the objects are identified (or mapped) as resources, which cause the print server to download the objects to the printer. The object may then later be included (e.g., using an ID) on the designated pages. However, some of these non-AFP data objects may also reference other objects from within, which are needed to render the data object (e.g., a font, image or color profile). When this occurs, the referenced object is referred to as a secondary resource.
AFP currently supports secondary resources that are unique to PDF. However, support needs to be added for other data formats (e.g., scalable vector graphics (SVG) and portable network graphics (PNG)), each of which support referencing other objects from within. As a result, AFP must be specifically tailored to support secondary resources for these formats. However, having to provide support in AFP for each new industry standard format results in significant development costs. Also, some resources (e.g., fonts) are truly generic in the sense that they may be shared across data objects. Treating these as a secondary resource will avoid multiple caching of the shared resource.
Accordingly, a mechanism to describe and process non-native secondary resources is desired.
In one embodiment, a method is disclosed. The method includes generating an object container in a host page description language (PDL) to process generic data objects that are not native to the host PDL, enabling an external object to reference an external object and mapping the external object to a library name familiar to the host PDL.
Embodiments of the present invention may be understood more fully from the detailed description given below and from the accompanying drawings of various embodiments of the invention. The drawings, however, should not be taken to be limiting, but are for explanation and understanding only.
A mechanism to process non-native secondary resources is described. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, 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 to avoid obscuring the underlying principles of the present invention.
Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the 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 are not necessarily all referring to the same embodiment.
In an AFP embodiment print application 110 provides a Mixed Object Document Content Architecture (MO:DCA) data stream to print server 120. According to one embodiment, the AFP MO:DCA data streams are object-oriented streams including, among other things, data objects, page objects, and resource objects. Print server 120 processes pages of output that mix all of the elements normally found in presentation documents, e.g., text in typographic fonts, electronic forms, graphics, image, lines, boxes, and bar codes. Objects may be stored in a resource library at server 120 for future access. The AFP MO:DCA data stream includes architected, structured fields that describe each of these elements.
For example, the data stream may include Map Data Resource (MDR) and Include Object (IOB) structures fields. The MDR structured field specifies resources that are required for presentation, while the IOB structured field references an object to be presented on a page or overlay. An IOB may also include parameters that identify the object and that specify presentation parameters such as object position, size, orientation, mapping, and default color.
In one embodiment, print server 120 communicates with control unit 140 via an Intelligent Printer Data Stream (IPDS). The IPDS data stream is similar to the AFP data steam, but is built specific to the destination printer in order to integrate with each printer's specific capabilities and command set, and to facilitate the interactive dialog between the print server 120 and the printer. The IPDS data stream may be built dynamically at presentation time, e.g., on-the-fly in real time. Thus, the IPDS data stream is provided according to a device-dependent bi-directional command/data stream.
Printer 130 includes a control unit 140 and a print head 160. Control unit 140 processes and renders objects received from print server and provides sheet maps for printing to print head 160. Control unit 140 includes a rasterizer to prepare pages for printing. Particularly, rasterizer includes a raster image processor (RIP) that converts text and images into a matrix of pixels (bitmap) that will be printed on a page.
According to one embodiment, AFP MO:DCA data streams may include secondary resources, which are resources that are used by objects that are themselves resources. Secondary resources may be explicitly referenced from within an object, or may be implicitly associated with an object by, for example, referencing the secondary resource in the IOB that includes the object. The explicit reference of a secondary resource is implemented using an object container, which is an envelope for object data.
For resource objects, the ability to explicitly reference a secondary resource from with the object is currently limited to PDF, which is a mechanism developed to reference an object type called a “PDF Resource Object”. This secondary resource object can be any resource supported by PDF, and the syntax of the reference is defined by PDF.
However, as discussed above, support for the explicit reference of additional non-native secondary resources is not readily available, and would require a separate mechanism to be developed for each. For example, to support a secondary resource for an SVG object a “SVG resource” could be defined. Without the development of a generic mechanism, the processing of AFP data streams may require non-native secondary resources to be specifically defined for each object type, such as “SVG resource”, “XPS resource”.
Furthermore, unless management of these generic secondary resources is enabled within the host PDL (e.g. AFP), as described herein, high speed production printing could grind to a halt and the performance of other presentation systems be negatively affected if, for example, the language and syntax used requires the secondary resource to be retrieved from the internet.
According to one embodiment, a name space mapping mechanism is provided to process non-AFP data objects, which are in turn referenced by non-OCA industry-standard resource objects, as generic secondary resources. In such an embodiment, a generic container is provided for data objects that are referenced as secondary resources. This generic container may carry any format supported by the non-OCA presentation object that references the secondary resource. Thus, the generic container mechanism is agnostic to both the format of the data object that references the secondary resource and to the format of the secondary resource object. With this mechanism, the secondary resource (the PNG object in
At processing block 320, the non-OCA object type is registered as a presentation object. At processing block 330, the non-OCA secondary resource object is registered as a generic non-OCA secondary resource object type supported in AFP (e.g., non-OCA secondary resource object). At processing block 340, the non-OCA secondary resource object is allowed to be referenced by any non-OCA presentation object. At processing block 350, the non-OCA secondary resource is allowed to be processed (stored in a resource library and downloaded to a printer) by the AFP system. In one embodiment, the referencing is modeled in a manner in which a PDF Resource Object is mapped and referenced. For example, a non-OCA presentation object is mapped using an FQN′DE′ on an MDR and its object type is identified using an X′10′ triplet on that MDR.
In a further embodiment, the non-OCA secondary resource object is referenced and tied to the non-OCA presentation object (e.g. the SVG), with an FQN′DE′/FQN′BE′ pair on the IOB that includes the non-OCA presentation object on the page. The FQN′DE′/FQN′BE′ pair also maps the ID with which the secondary resource is referenced within the non-OCA presentation object (the “internal ID” or “resourceNAME”—BurnCig), to the ID with which the secondary resource is processed in the AFP system (the “external ID” or “libraryNAME”—png1).
Thus, the generic secondary resource object is referenced using the identifier by which it is known to the AFP system (e.g., the name used to install it in a library or carry it in a resource group (the “external ID” or “libraryNAME”—png1)) on a mapping command that identifies this object type as the new generic non-OCA secondary resource, which causes the print server 120 to make the object available in the presentation device. Further, the generic resource is also referenced using the “internal ID” or “resourceNAME (BurnCig) by which it is called out within the presentation object on the command that includes the data object on an AFP page, such as an IOB structured field.
Computer system 500 further comprises a random access memory (RAM) or other dynamic storage device 525 (referred to herein as main memory), coupled to bus 520 for storing information and instructions to be executed by processor 510. Main memory 525 also may be used for storing temporary variables or other intermediate information during execution of instructions by processor 510. Computer system 500 also may include a read only memory (ROM) and or other static storage device 526 coupled to bus 520 for storing static information and instructions used by processor 510.
A data storage device 525 such as a magnetic disk or optical disc and its corresponding drive may also be coupled to computer system 500 for storing information and instructions. Computer system 500 can also be coupled to a second I/O bus 550 via an I/O interface 530. A plurality of I/O devices may be coupled to I/O bus 550, including a display device 524, an input device (e.g., an alphanumeric input device 523 and or a cursor control device 522). The communication device 521 is for accessing other computers (servers or clients) via an external data network, for example. The communication device 521 may comprise a modem, a network interface card, or other well-known interface device, such as those used for coupling to Ethernet, token ring, or other types of networks.
Embodiments of the invention may include various steps as set forth above. The steps may be embodied in machine-executable instructions. The instructions can be used to cause a general-purpose or special-purpose processor to perform certain steps. Alternatively, these steps may be performed by specific hardware components that contain hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components.
Elements of the present invention may also be provided as a machine-readable medium for storing the machine-executable instructions. The machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, propagation media or other type of media/machine-readable medium suitable for storing electronic instructions. For example, the present invention may be downloaded as a computer program which may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection).
Throughout the foregoing description, for the purposes of explanation, numerous specific details were set forth in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art that the invention may be practiced without some of these specific details. Accordingly, the scope and spirit of the invention should be judged in terms of the claims which follow.
Number | Date | Country | |
---|---|---|---|
61700037 | Sep 2012 | US |