The Job Ticket API (JTAPI) is an object oriented interface that allows a job ticket to be created and/or read without the caller of the JTAPI having to know or understand the syntax or format of the job ticket. The JTAPI design is programming language independent, so the JTAPI can be implemented in any programming language, even a non-object oriented language if object-oriented principles are followed. Although the actual job ticket (file) is typically XML-based, the JTAPI does not require that it be.
The JTAPI consists of a set of objects and attributes of the objects that allow the user of the JTAPI to describe how the job is to be printed. Following are the objects of the JTAPI:
· JobTicketInfo
Contains information about the job ticket, including information such as the character set to use, the version of the job ticket, the type (syntax) of job ticket to create or read. A JobTicketInfo object represents one and only one job ticket (file).
· Job
Represents the job that is to be printed or processed. The attributes of the Job object pertain to the entire job. A JobTicketInfo object contains one and only one Job object.
· Document
Represents one of the documents of the job. Currently a document represents (contains) one and only one file. The attributes of the Document object pertain to the entire document that the Document object represents. Certain attributes that can be set for the job can be overridden when also set for a document. A Job object contains one or more Document objects.
· PageOverrides
Represents the overrides that are to be applied to a specific set of pages in a job or document. Certain attributes that can be set for the job or document can be overridden when also set as page overrides. A Job or Document object contains zero or more PageOverrides objects.
· JobDocumentPage
Abstract object that is the base class for the Job, Document, and PageOverrides objects.
· Binding
Specifies the type of binding to perform on a job, document, or set of pages.
· Folding
Specifies the type of folding to perform on a job, document, or set of pages.
· HoleMaking
Specifies the type of hole making to perform on a job, document, or set of pages.
· InsertSheet
Specifies where to place an insert sheet in a job or document.
· Media
Specifies the media to be used by a job, document, set of pages, insert sheet, or separator sheet.
· Notification
Specifies the type of notification to be sent for a job.
· SeparatorSheet
Specifies the type of separator sheets (start, slip, or end) to include with the job.
· StartPage
Specifies the page that is to start on either the front or back side of the sheet.
· Stitching
Specifies the type of stitching to perform.
Following is a high level diagram of the JTAPI:
ftp://ftp.pwg.org/pub/pwg/fsg/jobticket/1_High%20Level30Sep02.jpg
· The API provides a job ticket syntax independent interface to allow a job ticket to be produced and consumed.
· The same API supports local and remote printing.
· The API supports extensions that the application can discover, but didn't know about when the application was written.
· The API allows for vendor-specific extensions that are not part of the general purpose API.
· The API supports localization for the convenience of the application.
· An implementation of the JTAPI will be called by an application, user interface, or a program (hereafter called an application) that is to create or read (consume) a job ticket. In some cases an application may just create a job ticket and in other cases an application may read an existing job ticket, modify it, and then recreate it.
· An implementation of the JTAPI will be called by Print Service to read (consume) a job ticket that was created by an application and print or process the job as specified by the job ticket.
1) Optionally, the application makes calls to the PAPI to determine the capabilities of the device(s).
2) Optionally, based on the limitations of the device(s) the application (could be a person if the application is a Graphical User Interface) determines what should be specified to describe how the job is to be printed or processed.
3) The application makes calls to create the JTAPI objects and set the attributes of the appropriate JTAPI objects to describe how the job is to be printed or processed.
4) The application calls the JTAPI to create a file that contains the job ticket.
5) The application calls the PAPI to submit the job (content/data file) and the job ticket.
6) The Print Service calls the JTAPI providing the job ticket file to convert the job ticket file into JTAPI objects.
7) The Print Service makes calls to retrieve information (attributes) from the JTAPI objects that describes how to print or process the job.