Information processing apparatus with print preview function

In a print system of this invention, upon issuance of a preview instruction from an application (201), print data is spooled in a spool file (303). A printer driver (203) despools the spooled data and transmits the despooled data to a printer (2000) as a preview job together with job setting information. The printer (2000) generates preview information for each physical page in accordance with the job setting information, and sends it to a host computer (3000). A previewer (306) receives the preview information, reads out data from a spooler, and displays a preview image in accordance with the received preview information.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to, for example, an information processing apparatus such as a personal computer or the like which transmits print data to a printer and, more particularly, to an information processing apparatus which displays a preview based on print data at the time of a print instruction.

2. Description of the Related Art

Conventionally, a preview scheme that displays a print result on an information processing apparatus such as a host computer or the like before execution of printing roughly includes two schemes.

In one preview scheme, an information processing apparatus generates and displays a preview image by simulating processing to be executed by a printer so as to allow the user to confirm a finishing result upon using a function such as stapling or the like (for example, see Japanese Patent Laid-Open No. 2001-67347).

In the other preview scheme, an information processing apparatus sends print instructions to a printer, the printer sends back image data which has undergone RIP processing (rasterize processing) to a host, and the host displays the image data (for example, see Japanese Patent Laid-Open No. 08-030410).

Some printers as computer peripheral devices support a Print On Demand (to be abbreviated as POD hereinafter) service, and have advanced functions such as complete bookbinding. Upon using printers with advanced functions, plural pieces of information associated with print results such as a finishing result, color determination result, blank page determination result, and the like that the user should know before actual printing are complicated, and functions which do not allow for mistakes are increasing. Since these pieces of information are different for respective printers, respective print instructions, and respective pages, it becomes difficult for a computer to completely simulate them.

SUMMARY OF THE INVENTION

The present invention has been made in consideration of the above prior art, and provides an information processing apparatus and program, which can implement an accurate preview display that reflects processes to be executed by a multi-functional printer even when the multi-functional printer is used in printing. The present invention also provides an information processing apparatus and program, which allow the user to change print settings while displaying a preview window, and can accurately reflect the changes of the print settings on a preview and printouts.

The present invention provides an information processing apparatus connected to a printer which generates preview information that indicates layouts and finishing processing for respective physical pages in accordance with received printer control commands, comprising:

a print instruction transmission unit adapted to generate, when a preview designation of data is issued, printer control commands according to print data together with a job type indicating preview, and transmit the generated printer control commands to the printer; and

a preview unit adapted to generate and display a preview image based on preview information which is generated by the printer in accordance with the printer control commands and indicates layouts and finishing processing for respective physical pages.

The present invention also provides a printer system formed by connecting an information processing apparatus and a printer which generates preview information indicating layouts and finishing processing for respective physical pages in accordance with received printer control commands,

the information processing apparatus comprising

a print instruction transmission unit adapted to generate, when a preview designation of data is issued, printer control commands according to print data together with a job type indicating preview, and transmit the generated printer control commands to the printer, and

a preview unit adapted to generate and display a preview image based on preview information which is generated by the printer in accordance with the printer control commands and indicates layouts and finishing processing for respective physical pages; and

the printer comprising

a reception unit adapted to receive the printer control commands from the information processing apparatus,

a preview information generation unit adapted to generate, when the job type corresponding to the printer control commands is preview, preview information which indicates layouts of logical pages and finishing processing for respective physical pages to be printed in accordance with job control information and print data included in the printer control commands, and

a transmission unit adapted to transmit the preview information to the information processing apparatus.

Alternatively, the present invention also provides an information processing apparatus comprising:

a print instruction transmission unit adapted to generate, when a preview designation is issued, printer control commands according to print data together with a job type indicating preview, and transmit the generated printer control commands to a printer; and

a preview unit adapted to generate and display a preview image based on preview information which is generated by the printer in accordance with the printer control commands and indicates sizes, orientations, and scaling information of pages to be laid out.

The present invention can implement an accurate preview display that reflects the states of output materials by the printer. The present invention allows the user to change print settings while displaying a preview window, and can accurately reflect the changes of the print settings on a preview and printouts.

DESCRIPTION OF THE EMBODIMENTS

Embodiments to which the present invention can be suitably applied will be described hereinafter.FIG. 1is a block diagram showing the arrangement of a printer control system according to one embodiment of the present invention. Note that the present invention can be applied to any of a standalone device, a system including a plurality of devices, and a system in which devices are connected via a network such as a LAN, WAN, or the like to execute processing, as long as the functions of the present invention can be implemented.

Referring toFIG. 1, a host computer3000comprises a CPU101. The CPU101systematically controls respective devices connected to a system bus104. The CPU101controls document processing, print processing, and the like of documents that include any combinations of graphics data, image data, text data, table data (including a spreadsheet), and the like together, based on a document processing program and the like stored in a program ROM of a ROM103or an external memory111. The program ROM of the ROM103or the external memory111stores an operating system program (to be referred to as an OS hereinafter), and programs of the procedures shown inFIGS. 5,6,7, and14. A font ROM of the ROM103or the external memory111stores font data and the like used in the document processing. A data ROM of the ROM103or the external memory111stores various data used upon executing the document processing and the like. A RAM102serves as a main memory, work area, and the like of the CPU101.

A keyboard controller (KBC)105controls key inputs from a keyboard109and a pointing device (not shown). A CRT controller (CRTC)106controls a display on a CRT display (CRT)110. A disk controller (DKC)107controls access to the external memory111such as a hard disk (HD), flexible disk (FD), or the like. The external memory111such as the hard disk or the like stores programs and data such as a boot program, various applications, font data, user files, edit files, a printer control command (or to be referred to as a PDL command) generation program (to be referred to as a printer driver hereinafter), and the like. A printer controller (PRTC)108is connected to a printer2000via a network121, and executes communication control processing with the printer2000. The printer (printing apparatus)2000is often connected to a network such as Ethernet® or the like.

Note that the CPU101executes rasterize processing of a print preview image on a display information RAM assured on, e.g., the RAM102to display a preview on the CRT110. The CPU101opens various registered windows based on commands instructed by a mouse cursor or the like (not shown) on the CRT110, and executes various kinds of data processing in accordance with operations by the operator. Upon execution of printing, the user opens a window associated with print settings, and can set a printer and a print processing method for a printer driver as well as selection of a print mode. The user can also call and display the window for the print settings (also called print attributes) from a preview display window, and can change the settings from the windows for the print settings. In this embodiment, various settings for printing are called print settings, and information including the print settings together is called print setting information. The print setting information is, for example, a structure called DEVMODE in Windows®. The print setting information is changed by the printer driver, is passed to a spooler for each print job, and is saved as the print settings of that job. This information which is stored in the spooler and indicates the print settings for each job is called job setting information.

A printer CPU112controls the printer2000. The printer CPU112outputs an image signal as output information to a printer engine2010connected to a system bus115via a printer engine interface118based on control programs and the like stored in a program ROM of a ROM113or an external memory2011. The program ROM of the ROM113stores control programs and the like of the CPU112. A font ROM of the ROM113stores font data and the like used upon generating the output information. A data ROM of the ROM113stores information and the like used on the host computer in case of a printer which has no external memory2011such as a hard disk or the like.

The printer CPU112can execute communication processing with the host computer via an interface unit2001, and can send information and the like in the printer to the host computer3000. A RAM119serves as a main memory, work area, and the like of the printer CPU112, and can expand its memory capacity by an optional RAM connected to an expansion port (not shown). Note that the RAM119can also be used as an output information rasterize area, environmental data storage area, NVRAM, and the like. A disk controller (DKC)120controls access to the external memory2011such as a hard disk (HD), IC card, or the like. The external memory2011is connected as an option; and stores font data, emulation programs, form data, and the like. On the operation panel2020, switches, LED indicators, and the like used to operate the printer are arranged. The printer CPU112executes the program of the procedure shown inFIGS. 15A and 15B, and rasterizes print data received from the computer3000to print it on a paper sheet. In case of a preview job, the printer CPU112generates preview information which reflects layouts and the like for respective pages, and finishing processing based on the job setting information received from the computer3000, and transmits the generated preview information to the computer3000.

The number of external memories2011is not limited to one, and a plurality of external memories may be connected. A plurality of external memories including an optional font card in addition to built-in font data, an external memory which stores a program that interprets a printer control language of a different language system, and the like may be connected. Furthermore, the printer may comprise an NVRAM (not shown), and may store printer mode setting information from an operation panel2020.

FIG. 4is a sectional view of a color laser beam printer which has a double-sided print function, as an example of the printer2000. The printer2000scans, via a polygon mirror31, a photosensitive drum15with a laser beam, which is modulated by image data for each color obtained based on print data input from the host computer3000, thus forming an electrostatic latent image. The printer2000develops this electrostatic image by each toner to obtain a visible image of a given color, and multiple-transfers visible images for all the colors onto an intermediate transfer member9, thus forming a color visible image. Furthermore, the printer2000transfers this color visible image onto a transfer material (e.g., a sheet of paper)2, and fixes the color visible image on the transfer material2. An image forming unit which makes the aforementioned control comprises a drum unit having the photosensitive drum15, a primary charger having a contact charger roller17, a cleaning unit, a developing unit, the intermediate transfer member9, a paper feed unit including a paper cassette1and various rollers3,4,5, and7, a transfer unit including a transfer roller10, and a fixing unit25.

A drum unit13is configured by integrating the photosensitive drum (photosensitive body)15and a cleaner container14which also serves as a holder of the photosensitive drum15and has a cleaning mechanism. This drum unit13is detachably supported by a printer main body, and is easily exchanged by another unit in correspondence with the service life of the photosensitive drum15. The photosensitive drum15is formed by applying an organic photoconductor layer on the outer circumferential surface of an aluminum cylinder, and is rotatably supported by the cleaner container14. The photosensitive drum15is rotated by the driving force transmitted from a drive motor (not shown), which rotates the photosensitive drum15counterclockwise in correspondence with the image forming operation. An electrostatic latent image is formed by selectively exposing the surface of the photosensitive drum15. In a scanner unit30, a modulated laser beam is reflected by the polygon mirror31, which rotates in synchronism with a horizontal sync signal of an image signal by a motor31a, and strikes the photosensitive drum via a lens32and reflecting mirror33.

The developing unit has an arrangement comprising three color developers20Y,20M, and20C used to develop yellow (Y), magenta (M), and cyan (C), and one black developer21B used to develop black, so as to visualize the electrostatic latent image. The color developers20Y,20M, and20C and the black developer21B respectively comprise sleeves20YS,20MS, and20CS, and21BS, and application blades20YB,20MB,20CB, and21BB, which are respectively in press contact with the outer circumferential surfaces of these sleeves20YS,20MS, and20CS, and21BS. The three color developers20Y,20M, and20C respectively have application rollers20YR,20MR, and20CR.

The black developer21B is detachably attached to the printer main body, and the color developers20Y,20M, and20C are detachably attached to a developing rotary23, which rotates about a rotation shaft22. The sleeve21BS of the black developer21B is located to have a small gap of about 300 μm from the photosensitive drum15. The black developer21B feeds toner using a built-in feeding member, and gives an electric charge to the toner by frictional electrification so as to apply the toner on the outer circumferential surface of the sleeve21BS, which rotates clockwise, using the application blade21BB. By applying a developing bias to the sleeve21BS, an electrostatic latent image on the photosensitive drum15is developed by black toner to form a visible image on the photosensitive drum15.

The three color developers20Y,20M, and20C rotate upon rotation of the developing rotary23in image formation, and the predetermined sleeve20YS,20MS, or20CS opposes the photosensitive drum15to have a small gap of about 300 μm. In this way, the predetermined color developer20Y,20M, or20C stops at a developing position that opposes the photosensitive drum15, thus forming a visible image on the photosensitive drum15.

Upon forming a color image, the developing rotary23rotates upon completion of a color developing process for a component color on the intermediate transfer member9. The developing processes are done in the order of the yellow developer20Y, magenta developer20M, cyan developer20C, and black developer21B. After four rotations of the intermediate transfer member9, visible images of yellow, magenta, cyan, and black toners are sequentially formed, thus consequently forming a full-color visible image on the intermediate transfer member9.

The intermediate transfer member9contacts the photosensitive drum15, and rotates upon rotation of the photosensitive drum15. The intermediate transfer member9rotates clockwise and receives four visible images multiple-transferred from the photosensitive drum15upon color image formation. Also, the transfer roller10(to be described later) contacts the intermediate transfer member9to clamp and convey the transfer material2upon image formation, thus simultaneously multiple-transferring the color visible image on the intermediate transfer member9onto the transfer material2. A TOP sensor9aand RS sensor9bused to detect the positions associated with the rotation direction of the intermediate transfer member9, and a density sensor9cused to detect the density of a toner image transferred onto the intermediate transfer member are located around the intermediate transfer member.

The transfer roller10comprises a transfer charger supported to be movable toward or away from the intermediate transfer member9. The transfer roller10is formed by warping a medium resistance foamed elastic body on a metal shaft.

The transfer roller10moves away downward so as not to disturb color visible images while the color visible images are multiple-transferred onto the intermediate transfer member9, as indicated by the solid line inFIG. 4. After the four color visible images are formed on the intermediate transfer member9, the transfer roller10is located at an upper position indicated by the dotted line inFIG. 4by a cam member (not shown) in synchronism with the transfer timing of the multi-color visible image onto the transfer material2. In this way, the transfer roller10is brought into press contact with the intermediate transfer member9at a predetermined pressure via the transfer material2, and is applied with a bias voltage, thus transferring the multi-color visible image onto the transfer material2.

The fixing unit25fixes the transferred multi-color visible image while conveying the transfer material2, and comprises a fixing roller26which heats the transfer material2, and a pressure roller27which makes the transfer material2pressure-contact the fixing roller27. The fixing roller26and pressure roller27have a hollow shape, and respectively incorporate heaters28and29. That is, the transfer material2which holds the multi-color visible image is conveyed and applied with heat and pressure by the fixing roller26and pressure roller27, thus fixing the toner image on its surface.

After the visible image is fixed, the transfer material2is exhausted onto an exhaust unit37by exhaust rollers34,35, and36, thus ending the image forming operation.

The cleaning unit cleans the residual toner on the photosensitive drum15and intermediate transfer member9, and the cleaner container14stores waste toner after the toner visible image formed on the photosensitive drum15is transferred onto the intermediate transfer member9or after the four color visible images formed on the intermediate transfer member9are transferred onto the transfer material2.

A transfer material (print sheet)2to be printed is picked up from the paper cassette1by a pickup roller3, and is conveyed while being clamped between the intermediate transfer member9and transfer roller10. Then, a color toner image is transferred to the transfer material2, and is fixed via the fixing unit25. In a single-sided print mode, a guide38forms a conveyance path to guide the print sheet to the exhaust unit at an upper position. However, in a double-sided print mode, the guide38forms a path to guide the print sheet to a double-sided unit at a lower position.

The print sheet guided to the double-sided unit is temporary fed to a portion under the paper cassette1(a convey path indicated by the two-dashed chain line) by convey rollers40, and is then conveyed in a reverse direction to be fed to a double-sided tray39. On the double-sided tray39, the obverse and reverse faces of the print sheet are reversed from those placed on the paper cassette11, and the leading and trailing ends of the convey direction are reversed. In this state, by transferring and fixing toner images again, the double-sided print mode can be attained.

<Software Configuration of Host Computer>

FIG. 2shows the configuration of typical print processing in the host computer to which the printing apparatus such as a printer or the like is connected directly or via a network. An application201, graphic engine202, printer driver203, and system spooler204exist as files saved in the external memory111. These files are executed after they are loaded onto the RAM102by the OS or modules that use those of the OS. The application201and printer driver203can be added to the HD of the external memory111via the FD or a CD-ROM (not shown) of the external memory111, or a network (not shown). However, when print processing is executed from the application201to the printer2000, the application201outputs rendering data using the graphic engine202which is similarly loaded onto the RAM102and is ready to run. Note that the following explanation will be given using the Windows® OS available from Microsoft Corporation. In Windows®, the graphic engine202as rendering means of the OS is generally called a GDI (Graphic Device Interface), and the application outputs rendering data called GDI functions to the GDI serving as the graphic engine.

The graphic engine202similarly loads onto the RAM102the printer driver203, which is prepared for each printing apparatus, from the external memory111. The graphic engine202then converts the GDI functions output from the application201into DDI (Device Driver Interface) functions based on a library and outputs the DDI functions to the printer driver203. The printer driver203converts the DDI functions received from the graphic engine202into control commands that can be recognized by the printer, e.g., PDL (Page Description Language) commands. The converted PDL commands are output to the printer2000as print data included in a print job via the system spooler204, which is loaded onto the RAM102by the OS, and the interface121. The preview print system proposed by Japanese Patent Laid-Open No. 2001-067347 is implemented by providing a configuration that temporarily spools print data from the application as intermediate code data in addition to the print system which includes the printer and host computer shown inFIG. 2.

A preview print system of this embodiment will be described below usingFIG. 3.FIG. 3shows a system obtained by enhancing that shown inFIG. 2, and adopts a configuration that temporarily generates a spool file303including intermediate codes upon sending print instructions from the graphic engine202as the rendering means of the OS to the printer driver203. Since intermediate codes are temporarily generated, a previewer loads the contents of the intermediate codes of the spool file303and allows the user to preview and to change the print settings.

For these purposes, the system shown inFIG. 2is enhanced to spool as intermediate code data, as shown inFIG. 3. In order to change the settings of print data, the user normally makes settings from a window provided by the printer driver203, which saves the setting contents on the RAM102or external memory111.

<Software Configuration of Host Computer of this Embodiment>

Details ofFIG. 3will be described below. The same reference numerals inFIG. 3denote the same blocks as those inFIG. 2. As shown inFIG. 3, in this enhanced processing system, a dispatcher301receives print instructions output from the graphic engine202. If the print instructions (DDI functions) received from the graphic engine202are those (GDI functions) issued from the application201, the dispatcher301loads the spooler302stored in the external memory111onto the RAM102. Also, the dispatcher301sends the received print instructions (GDI functions) to the spooler302in place of the printer driver. In order to allow the dispatcher301to determine the source of print instructions, a method of appending an ID of a process as a transmission source of print instructions to those print instructions or the like is available.

The spooler302interprets the received print instructions, converts them into intermediate codes in a predetermined format, which allows easy modifications, for respective pages, and outputs the converted intermediate codes to store them in the spool file303. The spool file of the intermediate codes stored for each page is called a page rendering file (or Unified Display List: UDL). The spooler302acquires print setting information set using the printer driver203from it, and saves the acquired print setting information in the spool file303as a setting file for each job. The print setting file stored for each job is called a job setting file. The job setting file is also called a JDF (Job Definition Format). This job setting file will be described later. The operator changes the print settings on the printer driver in advance before he or she issues a print instruction from the application. Print setting items that can be set using the printer driver include an Nup setting used to lay out, e.g., N pages on one page in a reduced scale, double-/single-sided setting, staple setting, color/monochrome setting, and the like.

The spooler302loads a spool file manager304stored in the external memory111onto the RAM102, and notifies the spool file manager304of the generation state of the spool file303. After that, if the spool file manager304determines that print processing is ready to be executed using the intermediate data stored in the spool file303, it loads a despooler305stored in the external memory111onto the RAM102. The spool file manager304instructs the despooler305to execute print processing of page rendering files described using the intermediate codes (UDL) described in the spool file303. In this case, the spool file manager304loads a previewer306stored in the external memory111onto the RAM102, and notifies it of the job ID to set the previewer306in the standby state.

The despooler305re-generates GDI functions in accordance with the contents of the page rendering files of the intermediate codes included in the spool file303and the job setting information included in the spool file303. The re-generated GDI functions are output via the graphic engine202as the rendering means of the OS once again.

If the print instructions (DDI functions) received by the dispatcher301from the graphic engine202are those (GDI functions) issued by the despooler305, the dispatcher301passes the print instructions to the printer driver203.

The printer driver203generates printer control commands in a page description language (PDL) or the like based on the print instructions (DDI functions) acquired from the graphic engine202, and sends the generated commands to the printer2000via the system spooler204as a print job. In this embodiment, if a preview mode is designated from a user interface or the like of the printer driver, a preview attribute is appended to the PDL commands, which are transmitted to the printer. For example, the preview attribute is appended to information (job control information) associated with a job as a unit of print processing, and that information is transmitted to the printer. The printer2000does not print the print job appended with the preview attribute onto paper sheets, but it generates preview information associated with the job ID and transmits the generated information to the computer3000. The preview information includes information required to display a preview such as layout information indicating the layout of pages which are to be actually printed on paper sheets and are stored in the spool file303, staple positions of respective physical pages, and the like. Note that a paper sheet which is to actually undergo printing is also called a sheet or physical page. Also, a page stored in the spool file303is also called a logical page. In addition, the preview information includes a blank page determination result (blank page information) indicating whether or not a page of interest is a blank page, and color mode information indicating one of monochrome and color.

The previewer306configures a preview unit310together with a setting change editor307. Upon reception, from the printer (printing apparatus), of the preview information corresponding to the job ID received from the spool file manager304, the previewer306stores the received preview information in the spool file303. At the same time, the previewer306pops up a window of the spool file manager, and displays, as a list, job IDs associated with the preview information spooled in the spool file303on the window. Note that the preview information is also called “JDFP” (Job Definition Format For Preview) for short.

The user can set to display a preview by providing a user interface window shown in, e.g.,FIG. 8. In order to display a print preview and to change the print settings, the user must designate “store” from a pull-down menu (also called output method selection means)803as means for “designating an output destination” on the property window of the printer driver shown inFIG. 8. When the user wants to display only a preview, he or she selects “preview” from the pull-down menu803as designation of the output destination.

FIG. 9shows a display example of the print state when one print job is spooled. By pressing one of menu bar items901or one of menu icons902immediately below the menu bar, the user can manipulate a job. The manipulations that the user can make using the menu bar901are the same as those that he or she can make using the menu icons902. The manipulations include “print”, “save & print”, “preview”, “delete”, “copy”, “edit job”, “change order”, and the like. “Print” is a manipulation for making the printer2000print a print job selected from a list903. “Save & print” is a manipulation for making the printer print the print job selected from the list903while leaving the spool file of the intermediate codes of that print job intact. “Preview” is a manipulation for displaying a preview of the print job selected from the list903while reflecting the print settings. “Delete” is a manipulation for deleting the spool file of the intermediate codes of the print job selected from the list903. “Copy” is a manipulation for copying the spool file of the intermediate codes of the print job selected from the list903. “Job edit” is a manipulation for changing the print settings (layout setting, finishing setting, and the like) of the job selected from the list903. “Change order” is a manipulation for changing the print order of jobs.

When the user selects a certain print job and designates its preview on the window (FIG. 9) of the spool file manager304, the spool file manager304loads the previewer306stored in the external memory111onto the RAM102. The spool file manager304designates the previewer306to execute preview processing of the job of the intermediate codes described in the spool file303.

Upon reception of the designation, the previewer306receives the preview information from the printer, and sequentially reads out page rendering files (UDL) of the corresponding intermediate codes included in the spool file303. The previewer306modifies the page rendering files in accordance with the setting information for respective pages included in the preview information (JDFP), re-generates GDI functions based on the modified intermediate data (page rendering files), and outputs the re-generated GDI functions to the graphic engine202. In this case, a client area of the previewer306, i.e., a display device is designated as the output destination. In this manner, since the graphic engine202which received the GDI functions outputs DDI functions for the display device, a display output onto the screen can be attained. Note that the preview information and page rendering files can be associated with each other using the job ID of the print job. Since the job ID is included in both the preview information and spool file, the preview information and spool file having the same job ID can be associated with each other as information pertaining to an identical print job.

The graphic engine202can perform appropriate rendering in accordance with the designated output destination. For example, the display device and printing apparatus have different resolutions. The graphic engine202acquires attribute information such as the resolution of the designated output destination and the like from, e.g., a database or the like managed by the OS, and executes rendering using the acquired information. As described above, the previewer306can be implemented by the method of modifying the intermediate codes included in the spool file303in accordance with the preview information (JDFP) and outputting the modified intermediate codes using the graphic engine202.

<Software Configuration of Printer2000>

The operation of the printer (printing apparatus)2000shown inFIG. 3will be described below. The printer2000receives printer control commands such as PDL commands or the like from the host computer3000, and temporarily stores them in a reception buffer2003. A command interpreter2007interprets the printer control commands such as the PDL commands. As a result of interpretation, if the received printer control commands are print commands, a rendering processing execution unit2005rasterizes image data in accordance with the print settings of the print job of interest, and temporarily stores the image data in an HD2011. After the image data that can be output is stored, an output controller2008converts the image data into a video signal in synchronism with engine rotations (ship processing), and passes the video signal to a printer engine2010. The printer engine2010forms images on sheets in accordance with the video signal. Note that the job includes a series of printer control commands delimited by a job start command. The job setting information indicating the print settings is transmitted from the host computer3000to the printing apparatus2000after, e.g., the job start command. Whether one job is a print job or preview job is indicated by, e.g., the value of a “job type” field in the job setting information. Alternatively, the value of the “job type” field in the job setting information may be copied to the job start command, so that the job start command indicates the job type.

In this embodiment, if the job received by the printing apparatus2000is a preview job, the rendering processing execution unit2005rasterizes image data in accordance with the designated settings in the same manner as in the print job. The rasterized image data is temporarily stored in the HD2011together with the job ID. The rendering processing execution unit2005associates detailed preview information (JDFP) for respective physical pages generated during the process for rasterizing image data to process it to a state immediately before printing, and the temporarily stored image data, and saves them as a set.

The generated preview information is returned to the previewer306of the host computer3000as the transmission source of the job. In order to speed up the preview processing, the generation time of the preview information (JDFP) may be shortened by simplifying the processing for rasterizing to an image, and after the preview information is returned to the previewer, image data to be printed may be rasterized.

The previewer306sends, to the printer, print instructions with a preview attribute generated by the printer driver203based on the job setting information (JDF) and page rendering files (UDL). As a result, the printer executes the same processing as actual print processing, and generates accurate preview information (JDFP) as in actual printing. The preview information generated by the printing apparatus has the same data format as that of the job setting information. However, unlike the job setting information, the preview information is generated for each physical page. Also, the preview information includes items different from the job setting information. The job setting information and preview information will be described later with reference toFIGS. 12,13, and the like. The previewer306modifies data of the spooled page rendering files (UDL) based on the preview information (JDFP) received from the printer, and outputs the modified data to the display. In this way, an accurate preview display can be attained.

As a result of the above preview processing, the previewer306displays previews as large as printouts that reflect the job settings included in the spool file303on the screen, as shown inFIG. 11. After that, if the user instructs to clear the displayed contents, the previewer306is closed, and the control shifts to the spool file manager304. The spool file manager304displays a window (FIG. 9).

Upon executing job setting/print processing displayed on the previewer, the user designates “print” or “save & print” on the window of the spool file manager304to issue a print request to the graphic engine202. If the print settings are not to be changed, the user can designate the job ID in the print request. The printer which received the printer control commands of the print request via the graphic engine202and the like can output images which correspond to the designated job ID and have already undergone RIP (have already been rasterized to image data) at high speed.

Upon changing the print settings, the user changes the print settings such as the layout, paper orientation, print order, paper cassette to be used, and the like from the print setting window provided by the previewer306, and settles the changes. The setting change editor307edits the job setting information (JDF) corresponding to the preview job saved in the spool file303in accordance with the contents of the changed print settings. The despooler305reads out the edited job setting information from the spool file303, and passes it to the printer driver203together with the job ID via the graphic engine202and the like. The printer driver203generates printer control commands corresponding to differences from the printer control commands of the already transmitted job, and outputs them to the printing apparatus2000. In this case, the differences are limited to those in the job setting information. Therefore, for example, new printer control commands required to transmit the job setting information to the printing apparatus2000are generated, and are transmitted to the printing apparatus2000together with the job ID. This job ID is the same as that of the preview job which was transmitted first to the printing apparatus2000.

The processing flow of the conventional preview scheme will be described below usingFIGS. 2 and 16.FIG. 16shows an example of the processing flow of the overall conventional preview processing system. Upon reception of a print instruction from the application201, the printer driver203generates intermediate codes (processing step1601). The generated intermediate codes are saved in a spool file. A preview utility generates an image to be displayed by loading the intermediate codes, and displays a preview on the screen of a personal computer (processing step1602). If the display result has no problem, the user presses a print button to call the printer driver203. The printer driver203generates PDL commands (printer control commands) (processing step1603). Upon reception of the print job including the PDL commands from the printer driver203, a printer600starts print processing from PDL command interpretation (processing step1604). The preview utility of the host computer generates and displays a preview image using the intermediate codes.

FIG. 17shows an example of the processing sequence of the overall system of this embodiment. Upon reception of a print instruction from the application201, the printer driver203generates intermediate codes (processing step1701). The spooler302saves the intermediate codes in the spool file303. The preview unit310loads the spooled intermediate codes, and issues a print instruction to the printer driver203. Note that this print instruction includes information indicating preview. For example, information indicating preview is described in the job setting information. The print instruction including information indicating preview is referred to as a preview instruction in this invention. Upon reception of the print instruction (i.e., preview instruction), the printer driver203generates PDL commands (processing step1702). The printer driver203appends a preview attribute to the generated PDL commands, and transmits them as print instructions with the preview attribute to the printer2000. The print instruction send to the printer2000from the printer driver203is referred to as a print job. The print job with the preview attribute is referred to as a preview job. Upon reception of the print job with the preview attribute, the printer2000interprets the PDL commands to generate preview information (JDFP), and returns the generated preview information to the host computer (processing step1703). A final recipient of the preview information in the host computer is the preview unit310. The printer2000also executes RIP processing of the print job with the preview attribute received after interpretation of the PDL commands to generate image data. The generated image data are stored in the hard disk together with the preview information in association with the job ID (processing step1705). However, as this RIP processing, the same RIP processing as that upon reception of the print job is executed to generate image data to be printed. If the PDL commands are also saved, only information associated with differences may be received after the settings have been changed. Hence, it is desirable to store the PDL commands. In this embodiment, the received PDL commands are also stored.

The preview unit310loads the spooled intermediate codes, and makes preview display in accordance with the preview information (JDFP) received from the printer2000(processing step1704). The spooled intermediate codes include image information for respective pages such as objects to be rendered for respective physical pages, and the like. The preview information includes information associated with the print settings such as the layout for each physical page, finishing information, and the like. The preview unit310rasterizes the intermediate codes to those for display, lays out logical pages in accordance with the print settings described in the preview information, and appends image objects according to output materials. The image objects to be appended include those which represent punch holes, staples, a watermark, character strings of tab sheets, and the like. When a finisher has an inserter function, image objects that represent sheets such as a front cover sheet, back cover sheet, tab sheets, and the like to be inserted by an inserter, and objects such as character strings, images, and the like written on these sheets to be inserted are inserted in accordance with the preview information. If a finisher having a bookbinding function is added to the printer2000, the preview unit310also appends identification objects indicating the bookbinding positions and the like. In this way, preview images are generated and displayed in accordance with the preview information.

When the user changes the print settings, the preview unit310reflects the changed print settings in the job setting information. Also, the preview unit310sends a print instruction to the printer driver203via the graphic engine202. The printer driver203generates difference PDL commands (processing step1710). Since information changed by the preview unit310is limited to the job setting information, new PDL commands are generated as difference PDL commands. The difference PDL commands are transmitted to the printer2000together with the job ID. This job ID is the same as that of the preview job which was transmitted to the printer2000first. Upon reception of the difference PDL commands, the printer2000generates preview information again with reference to its job ID (processing step1707). In processing step1707, for example, the printer2000substitutes the job setting information received as the difference PDL commands with that in the PDL commands stored in association with that job ID. The printer2000then generates preview information based on the substituted PDL commands. The printer2000transmits the generated preview information to the preview unit310as the request source of the preview information. After that, the printer2000executes RIP processing using the changed job setting information to reflect the changed print settings in image data, thus updating the stored image data (processing step1709). This RIP processing may be executed for only a changed part if the settings are partially changed. However, since the changed part in job setting information influences all the pages included in the job of interest even when settings are changed partially, it is desirable to execute the RIP processing for the entire job again.

The preview unit310generates and displays preview images using the received preview information and the spooled intermediate codes and accepts the print button (processing step1708). When the user has depressed the print button after he or she confirms the preview images, the preview unit310sends the print instruction to the printer driver203. The printer driver203generates difference PDL commands, and sends a print job to the printer2000(processing step1710). However, if the print settings are not changed, since there is no difference information to be sent, the print job to be transmitted to the printer2000at this time need only include information indicating that the job is a print job, and the job ID.

If the stored PDL commands are not changed, the printer2000prints out the images generated in processing step1709. If the stored PDL commands are changed, the printer2000generates and prints image data that reflect the changes (processing step1711). Image data obtained by applying RIP processing to only the changed part may be printed in place of the image data with the same job ID, but the entire job may undergo the RIP processing again.

As described above, the printer driver works as a print instruction transmission means that generates, when a preview instruction of data is issued, printer control commands according to print data together with a job type indicating preview, and transmit the generated printer control commands to the printer. In addition, the previewer works as a preview means that generates and displays a preview image based on preview information which is generated by the printer2000in accordance with the printer control commands and which indicates layouts and finishing processing for respective physical pages. Moreover, the printer driver works as a setting change means that generates, when the print settings are changed, print instructions associated with a changed part.

FIG. 5is a flowchart showing the storage processing of the intermediate codes for respective pages in generation of the spool file303. This processing is executed after the dispatcher301accepts DDI functions as rendering data output from the graphic engine202and passes this rendering data to the spooler302upon reception of a print request from the application.

In step501, the spooler302accepts a print request issued by the application from the dispatcher301via the graphic engine202. As described above, the application201displays a dialog used to input the print settings, as shown inFIG. 8, before a print instruction, and the printer driver203passes job setting information indicating the print settings input from this dialog to the spooler302. Note that the setting input dialog shown inFIG. 8includes setting items801used to determine the number of logical pages to be laid out per physical page, and the like.

The spooler302checks in step502if the accepted print request is a job start request. If the spooler302determines in step502that the accepted print request is a job start request, the process advances to step503-1, and the spooler302generates a spool file303used to temporarily store intermediate data on the RAM102(or on the hard disk). Subsequently, the spooler302receives print setting information (corresponding to DEVMODE of Windows®) from the printer driver203, and stores job setting information (JDF) in the spool file303(step503-2). After that, the spooler302notifies the spool file manager304of the progress of print processing. In this case, if the job designated by the user is a preview job, the spooler302sends a preview notification to the spool file manager304; if the job is a print job, the spooler302sends a print start notification to the manager304(step504).

Next, in step505a page counter managed by the spooler302is reset to 1. Note that the spool file manager304loads job information for the job, the print processing of which has started, and job setting information as modification settings from the job setting file of the spool file303.

On the other hand, if the spooler302determines in step502that the accepted print request is not a job start request, the process advances to step506. The spooler302checks in step506if the accepted request is a job end request. If the spooler302determines that the accepted request is not a job end request, the process advances to step507, and the spooler302checks if the accepted request is a new page request. If the spooler302determines in step507that the accepted request is a new page request, the process advances to step508-1to increment the page counter. In step508-2, the spooler302notifies the spool file manager304of the progress of print processing. In this case, the spooler302notifies the spool file manager304of reception of the new page request as the progress information. At the same time, the spooler302may notify the page counter value.

If the spooler302determines in step507that the accepted print request is not a new page request, the process advances to step509, and the spooler302prepares for extraction of intermediate codes (UDL) to each page rendering file. In step510, the spooler302converts rendering data such as text data, graphic data, image data, and the like passed together with the print request into intermediate data to be stored in the spool file303. In step511, the spooler302writes the print request which is converted into a storable format (intermediate data) in step510in each page rendering file (UDL) of the spool file303. After that, the process returns to step501to accept a print request from the application again. The spooler302repeats a series of processes in steps501to511until it received a job end request (End Doc) from the application.

At the same time, the spooler302acquires print setting information such as modification settings and the like stored in the DEVMODE structure (i.e., print setting information) from the printer driver203, and stores it as job setting information (JDF) in the spool file303. On the other hand, if the spooler302determines in step506that the print request from the application is a job end request, all print requests from the application end. Hence, the process advances to step512, and the spooler302closes the spool file. In step513, the spooler302notifies the spool file manager304of the progress of print processing (job end notification in this case), thus ending the processing.

<Processing by Spool File Manager>

FIG. 6is a flowchart showing details of control between the spool file303generation process and a print data generation process (to be described later) in the spool file manager304. In step601, the spool file manager304accepts a progress notification or report of print processing from the spooler302or despooler305.

The spool file manager304checks in step602if the progress notification is a preview or print start notification sent from the spooler302in step504above. If the accepted notification is a preview or print start notification, the process advances to step603, and the spool file manager304acquires a job ID to start job management. The spool file manager304can acquire the job ID from a job ID generation counter or the like used to assign serial numbers in turn.

On the other hand, if the spool file manager304determines in step602that the accepted notification is not a preview or print start notification from the spooler302, the process advances to step604. The spool file manager304checks in step604if the progress notification is a new page notification sent from the spooler302in step508above, i.e., a processing end notification of one logical page. If the accepted notification is a processing end notification of one logical page, the process advances to step605, and the spool file manager304stores page information for this page. The page information includes, e.g., a page ID (physical page and logical page), information indicating association between the logical and physical pages, and the like. In step606, the spool file manager304determines a page number to be printed every time print instructions (intermediate codes) corresponding to one physical page are spooled, and sends to the despooler a processibility notification indicating that the physical page of interest is ready to process. The processibility notification includes a page ID of the physical page which is ready to output. For example, when a plurality of logical pages are laid out on one physical page, the spool file manager304receives a new page notification from the spooler every time it receives a logical page to be laid out on that one physical page. If data of all logical pages to be laid out on one physical page are not spooled yet, the processibility notification is not output in step606. Only after data for one physical page are spooled, the processibility notification is output. Note that printing in this case includes preview processing.

The process then returns to step601, and the spool file manager304waits for the next notification. In this embodiment, print processing can start even when spooling of the entire print job is not completed after print data for one physical page are spooled.

On the other hand, if the spool file manager304determines in step604that the accepted notification is not a print end notification for one logical page, the process advances to step607. The spool file manager304check in step607if the received notification is a job end notification sent from the spooler302in step512above. If the received notification is a job end notification, the process advances to step606above. On the other hand, if the received notification is not a job end notification, the process advances to step608, and the spool file manager304checks if the accepted notification is a print end (output end) notification for one physical page from the despooler305. If the accepted notification is a print end notification for one physical page, the process advances to step609to check if print processing of the entire job is complete.

If the print (output) processing is complete, the process advances to step610, and the spool file manager304sends a print end notification to the despooler305. If the spool file manager304determines that the print processing is not complete yet, the process returns to step606. Assume that the number of pages for which the despooler305of this embodiment can simultaneously execute print processing (output processing) is 1.

On the other hand, if the spool file manager304determines in step608that the input notification is not a print end notification for one physical page from the despooler305, the process advances to step611. The spool file manager304check in step611if the input notification is a print end notification from the despooler305. If the spool file manager304determines that the input notification is a print end notification from the despooler305, the processing ends. On the other hand, if the input notification is not a print end notification from the despooler305, the process advances to step612to execute another normal processing, and the spool file manager304waits for the next notification.

If information required for executing print processing for one physical page is sequentially stored in a file in steps605and606, the stored information is converted into a reusable format to issue a processibility notification. If the stored information is not reusable, an implementation method which uses a high-speed medium such as a shared memory or the like to overwrite a despooled physical page in turn, and saves the resources may be adopted. The delimiter of one physical page is determined with reference to the job setting information. When the progress of spooling is faster than that of despooling, or when despooling starts after the end of spooling for all pages, a page printable notification for each page may not be sent in step606. In this case, the number of times of notification is saved by adopting the notification contents indicating that a plurality of or all physical pages are ready to print, in accordance with the progress on the despooler side.

FIG. 7is a flowchart showing details of the print data generation process in the despooler305. The despooler305generates print data by reading out necessary information (page rendering files (UDL) and job setting information (JDF)) from the spool file303in accordance with a print request from the spool file manager304. The method of transferring the generated print data to the printer is as described above usingFIG. 3. In the print data generation process by the despooler305, the despooler305checks if the input job is a preview job (S701). If the input job is a preview job, the despooler305launches the preview unit310by notifying it of the job ID to be processed in step702. The job type indicating a preview job or print job can be determined by referring to the job type field of the job setting information.

In step703, the despooler305accepts a notification from the spool file manager304. If a notification is input, the process advances to step704. The despooler305checks in step704if the input notification is a job end notification. If the input notification is a job end notification, the process advances to step705to set an end flag. The process then advances to step707.

On the other hand, if the despooler305determines in step704that the input notification is not a job end notification, the process advances to step706, and the despooler305checks if the input notification is a processibility notification in step606inFIG. 6. If the despooler305determines in step706that the input notification is not a processibility notification, the process advances to step708to execute another error processing. The process then returns to step701to wait for the next notification. On the other hand, if the despooler305determines in step706that the input notification is a processibility notification, the process advances to step707, and the despooler305stores a page ID in the processibility notification which notifies that the print processing is ready to start.

The despooler305then checks in step709if the output processing for all the pages of the physical page IDs stored in step707is complete. If the processing of all the pages is complete, the process advances to step710to check if an end flag is set. If the end flag is set, the despooler305determines that the print processing of the job is complete, and sends a processing end notification to the spool file manager304, thus ending the processing. If the despooler305determines in step710that the end flag is not set, the process returns to step701to wait for the next notification.

On the other hand, if the despooler305determines in step709that pages which can undergo output processing still remain, the process advances to step711. In step711, the despooler305reads out a physical page ID to be processed in turn from the stored physical page IDs. The despooler305loads information required to generate print data of a physical page corresponding to the readout physical page ID from the spool file, and executes print processing (output processing).

In the print processing, the despooler305converts print request instructions (UDL) and job setting information (JDF) stored in the spool file303into a format that the graphic engine202can recognize, e.g., into GDI functions in the Windows® OS. The despooler305transfers these GDI functions to the graphic engine202. Upon completion of print processing, the despooler305sends a print data generation end notification to the spool file manager304in step712. The process returns to step709, and the despooler305repeats print processing for all the physical page IDs stored in step707.

With the above sequence, the despooler converts spooled intermediate codes into print instructions (GDI functions), and outputs them for each physical page.

FIGS.15A and1SB are flowcharts showing details of the process of the printer which receives print instructions with a preview attribute generated in step711.

In step1501, the type of a job included in the received PDL commands is checked. If it is determined in step1502that the received job is a preview job, the process advances to step1503. In step1503, the received PDL commands are interpreted to collect information required to display a preview. If the information required to display a preview includes information such as the paper cassette, exhaust destination, staple positions, and the like of respective physical pages, the information can be collected by interpreting the job setting information without executing RIP processing (rasterize processing to bitmap data) that takes much time. If the information required to display a preview includes that which requires the RIP processing such as blank page determination, color/monochrome determination, and the like, the RIP processing is executed in this step to collect information.

In step1504, preview information (JDFP) is generated based on the information collected in step1503, and the generated preview information is returned to the request source (host computer3000in this embodiment) of the preview job in step1505.

Next, it is checked in step1506if the received PDL commands are those for the already registered job. “Already registered” means that print data and preview information associated with a job with the same job ID as that of the received PDL commands are registered in the printer2000. If the received PDL commands belong to an unregistered job, the rendering processing execution unit2005of the printer2000executes RIP processing in step1510. The generated image data are stored in the HD2011together with the preview information. (JDFP) generated in step1504, original data, and job ID, thus ending the processing.

If it is determined in step1506that the PDL commands are those for a BOX already registered job, the print settings of the already registered job are compared with those of the received job by referring to their job setting information in step1507. Upon reception of the PDL commands in association with the already registered job, if, for example, these commands include job control information or print data of a certain page, that job control information is compared with that of the already stored preview information. If information stored in the printer is preview information, the preview information may be compared after preview information is generated based on the received PDL commands and is converted into the same format.

If it is determined in step1508that the print settings are different, RIP processing of a part influenced by the changed settings is executed, and image data are stored in the HD2011together with newly generated preview information (JDFP) in step1509, thus ending the processing. That is, if image data which are left unchanged still remain, newly generated image data are merged with the already stored image data. If no image data which are left unchanged remain, the newly generated image data may be overwritten.

If it is determined in step1502that the received job is not a preview job, the job IDs registered in the HD2011are searched for that of the received PDL commands in step1511. If a hit occurs, since the job ID of the received PDL commands has already been registered, the process branches to step1512. If it is determined in step1512that the job of received PDL commands is a print cancel job, the process branches to step1518; if it is a print job, the process branches to step1513.

In step1513, the print settings of the already stored job are compared with those of the received job by referring to their job setting information. If it is determined in step1514that the print settings are different, RIP processing of a part influenced by the changed settings is executed, and newly generated image data are stored in the HD2011in step1515. The newly generated and stored image data are merged with already stored image data. In step1516, the merged image data are transferred to the printer engine2010, thus executing print processing. The process advances to step1518in response to a print end notification from the printer engine2010.

If it is determined in step1514that the print settings are not different, data that have already undergone the RIP processing and are stored in the HD2011are printed in step1516, and the process advances to step1518, thus ending the processing. If it is determined in step1511that the job of interest is not stored in the HD2011, RIP processing is executed in step1517to store generated image data in the HD2011. In step1516, the stored image data are transferred to the printer engine2010to execute print processing. In response to a print end notification from the printer engine2010, the file of the print job whose print processing is complete is deleted from a BOX in step1518, thus ending the processing. On the other hand, upon reception of a print processing completion notification from the printer2000, the host computer3000deletes the file of the corresponding print job in the spool file303.

FIG. 14is a flowchart showing details of the preview process in the preview unit310. The previewer306waits for an event from the printer in step1401after the despooler305is launched. An event is transmission of preview information in the example ofFIG. 14. If an event is returned from the printer, the previewer306loads the received preview information (JDFP) in step1402.

In step1403, the previewer306reads out the page rendering files (UDL) of a job ID which corresponds to (matches) that of the preview information from the spool file303. In step1404, the previewer306executes preview rendering processing of the page rendering files (UDL) in accordance with the preview information (JDFP) (preview display).

In step1405, the previewer306waits for an event from the user. If it is determined that the user has input a print processing continuation instruction without changing the settings of the preview display, the previewer306generates a print instruction and issues it to the printer in step1407, and the process branches to step1412. The print instruction is generated by the printer driver in accordance with a request from the previewer. This print instruction is a simple one including only a job ID without any changes in print settings, since it is issued to make the printer print the stored job intact.

If it is determined that the print processing of the job is not to be continued in step1406, the process branches to step1408. In step1408, it is determined whether the user has instructed the previewer on modification of the print settings or cancellation of the print job. If it is determined that the user has instructed the previewer on cancellation of the print processing of the job in step1408, the previewer306generates a print cancel instruction in step1409, and the process then branches to step1412.

If it is determined that the user has changed the print settings in step1408, the process branches to step1410. If the user has changed the print settings, job setting information (JDF) is generated from the preview information (JDFP) received in step1402, and print instructions are sent again to the printer using the despooler305in step1410. In this case, the processing time can be shortened by sending only a changed part. The setting change editor307executes this step.

If the user issues a re-preview request, the process branches to step1401according to the determination result in step1411. If the user does not issue any re-preview request, the previewer306deletes the preview information (JDFP) and page rendering files (UDL) in the spool file303, thus ending the processing.

The procedures of the print preview processing and print processing using the dispatcher301, spooler302, spool file manager304, despooler305, printer2000, and previewer306have been described.

<Job Setting Information and Preview Information>

A preview job will be described below with reference toFIG. 12. In this example, the preview job includes job setting information (JDF)1201and print instructions (1202to1206). The preview job is transmitted as PDL commands to the printer.FIG. 12illustrates the job setting information and print instructions included in the preview job. The job setting information (JDF)1201includes10records inFIG. 12, whose item names (indices) and their contents are delimited by tabs, and respective records are given as a text file delimited by, e.g., line feed codes. As the contents of the records, the job setting information (JDF)1201includes a job type1201aindicating a type, i.e., preview or print, a job name (job ID)1201b, and print settings copied from the print setting information.

In a Windows® printing system, since the settings set by the print settings on a printer driver are applied to the entire job, one setting data is generated for the entire job like the job setting information1201.

However, as for print instructions defined by PDL commands or the like, the settings can be changed in the middle of the job like L3is A5 portrait, L4is A4 landscape, L5is A4 portrait, and so forth after L1and L2starting from A4 portrait.

Preview information1001inFIG. 10is an example of preview information (JDFP) generated by the printer2000which receives the job setting information1201and print instructions (1202to1206). The preview information includes the job setting information and physical page information. The physical page information includes finishing information indicating finishing processing such as stapling or the like which appears on each physical page, and configuring logical page information which includes a layout of logical pages that configure that physical page.

The implication of the preview information1001is expressed by pages1002,1003,1004, and1005. That is, L1, L2, L3, L4, and L5are assigned to respective 2-up divided regions on the two faces of A3 landscape paper sheets. In this way, using the preview information, output materials to be printed can be re-configured. In this case, the configuring logical page information1010should be noted. In this information, the printer which generates the preview information describes a layout of logical pages. That is, this information includes logical page IDs, sizes, rotation angle, sizes after scaling (or scaling factors), reference position coordinates, and the like of logical pages included in one physical page. With reference to this configuring logical page information, the same physical page as that to be printed by the printer can be re-configured.

In addition, the preview information includes staple position information, blank page determination information, and accounting determination information for each page. The staple position information is referred to so as to re-configure the staple positions, and the blank page determination information is referred to so as to indicate the presence/absence of an image in a page.

On the other hand, preview information1301inFIG. 13is also an example of preview information (JDFP) which is generated by the printer that receives the job setting information1201and print instructions (1202to1206) inFIG. 12and is different fromFIG. 10. Unlike the preview information1001inFIG. 10, the rotation angles of logical pages included in configuring logical page information1310express that images on the reverse face are upside down to those on the obverse face. Also, the preview information represents that an L4 page has a layout which is reduced in scale to the width of an A4 sheet in the landscape direction.

In this way, the printer generates preview information that includes information of the layout of logical pages and finishing processing which are to be made according to the interpretation of the job setting information for each printer.

Job setting information1801inFIG. 18is print instruction information generated when the previewer that receives the preview information1001changes the print settings on the reverse face of the first page to those on the reverse face of the first page in the preview information1301. The setting change editor307generates job setting information and print instructions shown inFIG. 18for a physical page whose settings have been changed, and transmits them to the printer driver. The printer driver converts these print instructions into PDL commands, and transmits the converted commands to the printer. In the example ofFIG. 12, the printer driver converts the job setting information1201and print instructions associated with L3and L4pages into PDL commands, and transmits them to the printer. The printer stores the received difference to be merged with the already stored print data, and generates new preview information. The printer then transmits the new preview information to the host computer3000. After that, the printer2000executes RIP processing to generate image data and stores the generated image data. The difference is merged with data of the stored job.

A message1901inFIG. 19indicates a print cancel instruction generated by the previewer306which receives the preview information1001. The print cancel instruction includes a job type and the job ID to be canceled. If the job type inFIG. 19is changed to “print”, a print instruction when the print settings are not changed is generated.

In this way, the output results of printers are of great variety depending on models, manufacturers, and the like, even if the application outputs identical data with identical print settings. According to this embodiment, a perfect preview that reflects different operations depending on models can be implemented.

Furthermore, since print instructions are already sent to the printer upon preview, the time required from determination of print processing to the end of the print processing can be shortened.

That is, according to the print system of this embodiment, an accurate preview display which reflects the states of output materials by the printer can be implemented. Furthermore, the user is allowed to change the print settings while displaying a preview window, and the changed print settings can be accurately reflected in the preview and printouts.

Note that the present invention may be applied to either a system constituted by a plurality of devices (e.g., a host computer, interface device, reader, printer, and the like), or an apparatus consisting of a single equipment (e.g., a copying machine, facsimile apparatus, or the like). The objects of the present invention are also achieved by supplying a recording or storage medium, which records a program code of a software program that can implement the functions of the above-mentioned embodiments to the system or apparatus, and reading out and executing the program code stored in the storage medium by a computer (or a CPU or MPU) of the system or apparatus. In this case, the program code itself read out from the storage medium implements the functions of the above-mentioned embodiments, and the storage medium which stores the program code constitutes the present invention.

The present invention also includes a case wherein the functions of the above-mentioned embodiments are implemented not only by executing the readout program code by the computer but also by some or all of actual processing operations executed by an operating system (OS) running on the computer on the basis of an instruction of the program code. Furthermore, the present invention is applied to a case wherein the program code read out from a storage medium is written in a memory of an expansion card or a function expansion unit which is inserted in or connected to the computer. In this case, the functions of the aforementioned embodiments are implemented by some or all of actual processes executed by a CPU or the like arranged in the function expansion card or unit based on the instruction of that program code.

This application claims the benefit of Japanese Patent No. 2006-068272, filed Mar. 13, 2006, which is hereby incorporated by reference herein in its entirety.