1. Field of the Invention
The invention relates generally to generating Job Definition Format (JDF) information and more specifically relates to methods and structure for generating a JDF job ticket from a printer definition file.
2. Discussion of Related Art
In many printing environments, including print shops (large and small), production printing and even smaller workgroup environments, it is generally known to create JDF information describing the processing required to print a particular print job. JDF is a widely adopted standard specification for providing information (printing parameters) relating to processing of a print job. The JDF information is typically contained in an object/file referred to as a “job ticket” and is associated with the print data for the print job by entries in the job ticket. A JDF job ticket includes any number of JDF elements required to specify printing parameters associated with the printing of a particular job. Exemplary of such printing parameters are: one or more resource locators identifying content for the material to be printed, rendering parameters indicating options for rendering various types of objects associated with a print job, layout options indicating, for example, n-up, duplex, and other available print options, media parameters for printing (size, weight, color, etc.), etc.
The JDF standards are published by CIP4 (a trade organization), are well known to those of ordinary skill in the art, and are readily available at www.cip4.org. In general, JDF elements are organized as a hierarchical tree such that various parameters are grouped into associated, logical branches of the tree of possible parameters and options. The tree has a common root and branches are associated with certain enumerated groupings of related parameters that may be specified by a user/application in creating a job ticket. Some present-day printing systems include a print server or other control elements that receive a JDF job ticket and process the JDF elements specified therein to directly control aspects of processing of the print job.
Another de facto standard that has evolved in printing systems is Postscript Printer Definition (PPD) developed and standardized by Adobe Systems. A PPD file is a text file that describes features and capabilities of a corresponding printing system. In addition to identifying the available features, the PPD file as defined by Adobe provides Postscript command language strings that implement a corresponding feature in the printing system. Though originally specified by Adobe Systems for support of Postscript capable printing systems, PPD file structures have been extended to define capabilities and features of other printing systems supporting other command language constructs such as HP Printer Command Language (PCL) and Printer Job Language (PJL). Still further, a similar open standard called General Printer Definition (GPD) has evolved providing a similar text-based structure to the PPD structure to define features and capabilities of a printing system and corresponding command strings to invoke the feature or capability on the printing system. Since the PPD and GPD structures are similar in purpose and general structure, reference herein to “printer definition” files shall be understood as including both PPD and GPD files.
Printer definition files are used by printer driver software modules in an operating system as well as directly used by various application programs. One common usage of the printer definition file for a printing system is to present a user (through a graphical or other user interface) with options and features to be selected in generating print data output for a document to be printed on a corresponding printer. The features and capabilities of a printing device and possible setting for such features are presented to a user desiring to print a document. The user's input selects desired features and/or capabilities and supplies parametric values where appropriate to specify parameters for printing of the document. The driver module then generates the command language strings corresponding to the user's selected options and outputs the generated strings and the user's supplied print data to cause the printer to print the document using the selected parameters. The printer definition file may also be accessed by an application program using an application program interface (API) to similarly select options for printing of a document generated by the application.
Many users are familiar with the typical user interface (e.g., graphical user interface) provided by systems using printer definition files. On a Microsoft Windows PC or an Apple Macintosh system, for example, a user requests printing of a document and is presented with printing systems that may be selected and available features for the selected printing system. The user provides input to select from the available features of a selected printing system and defines parameter values as desired for some such features.
Many print environments (e.g., print shops as noted above) utilize JDF job tickets to define printing parameters rather than the printer definition file approach. For example, in a print shop environment a customer of the print shop could interact with customized software on the print shop's computing systems to define the printing parameters as a JDF job ticket. But most customers of a print shop are unfamiliar with the structure and syntax of the JDF standards and such custom software and thus it is difficult for such a typical customer to generate the requisite JDF job tickets.
The present invention solves the above and other problems, thereby advancing the state of the useful arts, by providing methods and associated structure for generating JDF information (e.g., a JDF job ticket) from a printer definition file structure. The text of the printer definition file in accordance with features and aspects correlates available features of a printing system with JDF elements. The correlated JDF elements may be output to a file to define a JDF job ticket expressing printing parameters for processing for a print job. Thus a user or application may utilize familiar user or API interfaces associated with printer definition files to generate a JDF job ticket. In addition, a standard driver mechanism of the operating system already architected to access printer definition file structures may be used so that the operating system need not be altered.
One aspect hereof provides a method for generating a Job Definition Format (JDF) job ticket for printing a print job on an identified printing system. The method includes providing a printer definition file correlating features of the identified printing system with JDF elements and receiving input selecting features from the printer definition file. The method then outputs a JDF job ticket comprising the JDF elements correlated with the selected features.
Another aspect hereof provides a method operable in a host system for printing a job on a printing system. The method includes generating a print job comprising a sequence of command language strings to generate one or more page images. The method also includes selecting a printer definition file from among a plurality of printer definition files including Postscript Printer Definition (PPD) files and/or General Printer Definition (GPD) files. Each printer definition file defines available features of a corresponding printing system and identifies Job Definition Format (JDF) elements for the available features. The
Still another aspect hereof provides a system for generating a Job Definition Format (JDF) job ticket. The system includes a plurality of printer definition files wherein each printer definition file is associated with a corresponding printing system and wherein each printer definition file includes a plurality of entries each entry defining an available feature of the corresponding printing system and a JDF element associated with the available feature. The system also includes a computer system adapted to access the plurality of printer definition files. The computer system is operable to select a printer definition file from the plurality of printer definition files and is operable to present the available features of the selected printer definition file. Further, the computer system is operable to define print parameters as JDF elements based on the presented available features and to output a JDF job ticket comprising the JDF elements representing the defined print parameters.
The invention may include other exemplary embodiments described below.
The same reference number represents the same element or same type of element on all drawings.
Printing subsystem 108 may include a user interface 106 for interacting with a user through input/output device 112. Such interaction may include selecting the desired driver—and in particular may include selection of the JDF generation printer driver 150. Subsystem 108 may also include a printer definition file parser 102 adapted in the subsystem to parse a standard layout and format of a printer definition file. The particular printer definition file used in conjunction with JDF generation printer driver 150 may be parsed by parser 102 to generate the desired JDF job ticket as discussed further herein below. In general, such a printer definition file includes a plurality of entries where each entry includes a name identifying a feature available on the corresponding printing system as may be defined by the PPD specifications or by the GPD specifications. Further, in accordance with features and aspects hereof, each entry includes a corresponding JDF element identified by a JDF element path name string. The JDF element path name string indicates a JDF printing parameter used to effectuate the corresponding named feature available in the corresponding printing system.
In operation, application program 110 generates print data 114 and invokes printing subsystem 108 to generate a JDF job ticket 116 defining printing options to be used in printing print data 114. In general, print data 114 will be binary data or other data already generated in a command language to be processed directly by a printer. For example, print data 114 may be formatted as a Postscript or PCL file for direct processing by a printer 118. Application program 110 invokes the printing subsystem 108 through standard API function calls and/or through user interaction using user interface 106 of subsystem 108. For example, user interface 106 of printer subsystem 108 may display available printer drivers (e.g., available printing systems) on a display of device 112 and may receive user input from an associated input device of device 112. Exemplary input devices may include a keyboard, pointer device, touch screen, voice recognition, etc. After interacting with a user to select a desired printer driver (e.g., JDF generation printer driver 150), printing subsystem 108 may retrieve the associated JDF printer definition file (discussed further below) and may interact further through user interface 106 and device 112 to present to a user the available features of the selected JDF generation printer driver 150. For example, certain printers may offer duplex capabilities. Other printers may offer multiple paper media input sources. Still other printing systems may offer a variety of finishing options such as collating, stapling, etc. Printer driver 150 through user interface 106 and using printer definition file parser 102 may interact further with the user to select particular features to be utilized in printing an associated print data file 114. Driver 150 then generates a JDF job ticket 116 utilizing the JDF element path name strings associated with the selected features in the selected printer definition file. Lastly, the generated JDF job ticket 116 and the print data file 114 may be merged (120) and transferred to the selected printing system 118 to eventually print the defined print job. Alternatively, the generated JDF job ticket 116 and associated print data file 114 (separately or merged as 120) may simply be stored or spooled for printing at a later time on the selected printing system. Still further, the print data 114 and the JDF job ticket 116 (separately or merged as 120) may be sent to an appropriate server node such as a print server for further processing of the print job.
Exemplary display screens 300 and 400 of
JDF generation printer definition files 201 through 203 of
”
”
Those of ordinary skill in the art will readily recognize suitable encodings of numerous other features that may be specified to generate a JDF job ticket. Thus the above excerpt is intended merely as exemplary of one possible such features. By way of further example, a duplex print option may specify a translation into JDF strings such as:
If a user selects a JDF job ticket generation printing system (printer definition file) and selects the standard output bin option and a duplex print option, the processing of the printer definition file directives to generate corresponding JDF from the above exemplary entries may generate part of a JDF job ticket as follows:
If more selected JDF strings remain to be processed, step 703 resets the pointer to the current tree element to point to the “JDF root element (i.e., the root of the tree structure). Step 704 determines whether the next selected JDF string specifies its root as the “JDF” name or the JDF prefix has been omitted. If the JDF string specifies “JDF” as its root in the naming standards, steps 706 through 712 are iteratively operable to process the present JDF string through all its hierarchical layers of the JDF naming standard. Step 706 determines whether this JDF string has been completely processed or whether more “child” portions of the JDF string remain to be entered into the tree structure. If processing of this JDF string is complete, processing continues looping back to step 702. If more child portions remain to be processed in this JDF string, step 708 determines whether the next child portion is already entered in the tree structure. If not, step 710 adds a new JDF element to the tree structure to represent this new child portion added to the current branch of the tree indicated by the current pointer value. In both cases, step 712 next updates the current pointer to the JDF element in the tree structure representing the current child portion of the JDF string. Processing then continues looping back to step 706 to process additional child portions of the current JDF string (if any).
The method of
By traversing this completed tree structure, the XML JDF job ticket is created as:
Those of ordinary skill in the art will readily recognize that additional JDF strings would be provided to fully define a correct JDF job ticket. Thus, the above excerpts are intended merely to show a simple example to aid in understanding the processing of methods hereof to generate a JDF job ticket.
Embodiments of the invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In one embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
Furthermore, embodiments of the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium 912 providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.
A computer system 900 suitable for storing and/or executing program code will include at least one processor 902 coupled directly or indirectly to memory elements 904 through a system bus 950. The memory elements 904 can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
Input/output or I/O devices 906 (including but not limited to keyboards, displays, pointing devices, etc) can be coupled to the system either directly or through intervening I/O controllers. Network adapter interfaces 908 may also be coupled to the system to enable the computer system 900 to become coupled to other data processing systems or storage devices through intervening private or public networks. Modems, cable modems, IBM Channel attachments, SCSI, Fibre Channel, and Ethernet cards are just a few of the currently available types of network or host interface adapters. Presentation device interface 910 may be coupled to the system to interface to one or more presentation device such as printing systems and displays for presentation of presentation data generated by processor 902.
Although specific embodiments were described herein, the scope of the invention is not limited to those specific embodiments. The scope of the invention is defined by the following claims and any equivalents thereof.