Program and information processing device

The editing application program addresses the lack of customizability and GUI in V4 printer drivers by providing enhanced print preview and customization options through editing intermediate data and converting it into print commands.

JP2025116101AActive Publication Date: 2025-08-07CANON KK

Patent Information

Application Number
JP2025088671
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-05-28
Publication Date
2025-08-07
Estimated Expiration
2038-03-15

AI Technical Summary

Technical Problem

V4 printer drivers lack customizability and the ability to provide a graphical user interface (GUI) for print settings, limiting the functionality of printer drivers.

Method used

An editing application program that edits intermediate data, including drawing data, to determine the appropriate interface for acquiring print settings and convert the data into print commands, providing enhanced functionality beyond what WSDA and PEX can offer.

Benefits of technology

Enables more appropriate functions based on print settings, allowing for a GUI and improved print preview capabilities, enhancing user interaction and print customization.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025116101000001_ABST
    Figure 2025116101000001_ABST
Patent Text Reader

Abstract

To provide a technique that provides more appropriate functions in accordance with print setting.SOLUTION: Provided is a program of editing application with which it is possible to edit intermediate data including drawing data generated by a drawing application. The program causes a computer to execute the steps of: acquiring information associated with print setting; determining an interface used in the acquisition of intermediate data among a plurality of interfaces on the basis of the acquired information associated with print setting; and acquiring the intermediate data using the determined interface. The intermediate data outputted from the editing application is acquired by a printer driver and converted to a print command.SELECTED DRAWING: Figure 9
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a program and an information processing device, and more particularly to an editing application program and an information processing device. [Background technology]

[0002] A commonly known configuration uses a printer driver installed on a host computer as software for controlling the printing device to print to a printing device connected to the host computer. An operating system (OS), which is the basic software, is installed on the host computer, and the printer driver is configured according to the specifications of the OS and is invoked by the OS to operate. By providing a printer driver that conforms to the OS's specifications, a printing device vendor can provide a means for instructing the printer to print using the OS. When using an OS version prior to Microsoft® Windows® 8, the printer driver is configured with an architecture known as a V3 printer driver. A V3 printer driver displays a graphical user interface (GUI) when a user requests a print job. This GUI can provide functions that prompt the user to perform certain operations. For example, when a print request is issued, a specified event is invoked in the configuration module, which is a component of the V3 printer driver. The configuration module can then display the user interface during the event processing.

[0003] In recent years, a new architecture called the V4 printer driver has emerged for Windows (registered trademark). Because V4 printer drivers emphasize security, the customizability of the printer driver itself has been reduced. For example, the aforementioned configuration module is provided by the OS, and vendors can only provide setting files and script files for customizing its operation. To compensate for this reduced customizability, vendors of printing devices can provide dedicated applications for extending the functionality of printer drivers. One such application is called the Windows Store Device App (WSDA). By providing WSDA, vendors of printing devices can customize the print setting screen when printing drawing data (see Patent Document 1). [Prior art documents] [Patent documents]

[0004] [Patent Document 1] Japanese Patent Application Laid-Open No. 2017-33052 Summary of the Invention [Problem to be solved by the invention]

[0005] Thus, while the V4 printer driver offers improved security and convenience, it lacks the ability to provide a GUI, reducing the customizability of the printer driver itself. Therefore, as disclosed in Patent Document 1, by using WSDA, it is possible to provide a GUI, such as a print setting screen, even when using a driver that does not have the ability to provide a GUI, such as a V4 printer driver. However, conventional WSDA still has limitations. Furthermore, there is an application called Printer Extensions (PEX) that extends the functionality of the printer driver, but PEX also has the same limitations as WSDA. In view of these issues, the present invention aims to provide technology that provides more appropriate functionality depending on the settings. [Means for solving the problem]

[0006] The program of the present invention is an editing application program capable of editing intermediate data including drawing data generated by a drawing application, and causes a computer to execute the steps of acquiring information related to print settings, determining which of a plurality of interfaces will be used to acquire the intermediate data based on the acquired information related to the print settings, and acquiring the intermediate data using the determined interface, and the intermediate data output from the editing application is acquired by a printer driver and converted into a print command. [Effects of the Invention]

[0007] The present invention makes it possible to provide more appropriate functions depending on the settings. [Brief explanation of the drawings]

[0008] [Figure 1] FIG. 1 is a block diagram showing the hardware configuration of a printing system. [Figure 2] FIG. 1 is a block diagram of a driver printing system. [Figure 3]FIG. 10 is a schematic diagram illustrating a screen for issuing a print instruction. [Figure 4] 10 is a flowchart of a setup process for an editing application. [Figure 5] PrintCapabilities example. [Figure 6] PrintTicket example. [Figure 7] 10 is a flowchart of UI processing of an editing application. [Figure 8] Schematic diagram of a user interface of an editing application. [Figure 9] 10 is a flowchart of editing and termination processing of an editing application. [Figure 10] An example of information stored in Local Storage. [Figure 11] 10 is a flowchart of editing and termination processing of an editing application according to the second embodiment. [Figure 12] 11 is a flowchart of editing and termination processing of an editing application according to the third embodiment. [Figure 13] Conceptual diagram of the logical structure of XPS. DETAILED DESCRIPTION OF THE INVENTION

[0009] In the following embodiments, an application called a Print Workflow Application (WFA) is used to provide more appropriate functionality. This WFA is an editing application that can edit intermediate data including drawing data generated by a drawing application, and is also called a print-time startup application because it is started in response to a print request. Details of the editing application will be described later.

[0010] Preferred embodiments of the present invention will be described in detail below with reference to the accompanying drawings. Note that the following embodiments do not limit the scope of the present invention, and not all of the combinations of features described in the embodiments are necessarily essential to the solution of the present invention.

[0011] <Embodiment 1> 1 is a block diagram showing the hardware configuration of a printing system. In this diagram, a host computer 101 is an example of an information processing device, and includes an input interface 110, a CPU 111, a ROM 112, a RAM 113, an external storage device 114, an output interface 115, and an input / output interface 116. Input devices such as a keyboard 118 and a pointing device 117 are connected to the input interface 110, and a display device such as a display unit 119 is connected to the output interface 115.

[0012] An initialization program is stored in the ROM 112, and application programs, an operating system (OS), a printer driver, and various other data are stored in the external storage device 114. The RAM 113 is used as a work memory when the various programs stored in the external storage device 114 are executed.

[0013] In this embodiment, the CPU 111 executes processing according to the procedures of a program stored in the ROM 112, thereby realizing functions and processing according to flowcharts described below in the host computer 101. The printing device 102, which is a device, is connected to the host computer 101 via an input / output interface 116. Here, the host computer 101 and the printing device 102 are configured separately, but they may also be configured as a single information processing device.

[0014] <Block structure of the driver printing system> FIG. 2 is a block diagram of a driver printing system. The following description is based on the premise that the host computer 101 is running Microsoft® Windows® 8 or later as its operating system, and that the printing system operates using an architecture known as a V4 printer driver. Note that the printer driver of this embodiment will be described as a model-specific printer driver, which is a printer driver dedicated to the model of the printing device 102 provided by a printer vendor. However, the printer driver of this embodiment is not limited to model-specific printer drivers. For example, the printer driver may be a universal printer driver provided by a printer vendor that is compatible with multiple types of printing devices from that printer vendor. Alternatively, the printer driver may be a class driver (a standard printer driver that uses a standardized printing method) that is provided together with the OS as one of the functions in the OS package and can be used commonly by printing devices provided by multiple vendors.

[0015] When a user issues a print instruction from a Universal Windows Platform (UWP) application 202, a predetermined screen is displayed by a Modern Print Dialog (MPD) (not shown), which is an OS function. The UWP application 202 is a drawing application for generating drawing data (images, text information, etc. that are the basis for forming print data on paper). The screen provided by the MPD has a print preview function that allows the user to check the print results on the screen and a function that allows the user to select basic print settings.

[0016] Fig. 3 shows an example of a specific screen displayed during print settings. In Fig. 3(A), when a print instruction is given on screen 301 provided by a UWP application, which is a drawing application, a settings screen 302 shown in Fig. 3(B) is displayed by the MPD of the OS. On this settings screen 302, the user can select the driver to use. Furthermore, on the settings screen 302, basic print settings can also be specified.

[0017] Furthermore, the MPD receives instructions from the user and launches a Windows Store Device Application (hereinafter, WSDA) 207, which allows the user to select detailed print settings. Specifically, when the "More Settings" button 303 is selected on the settings screen 302 in FIG. 3(B), a detailed settings screen 304 provided by WSDA, shown in FIG. 3(C), is displayed. This detailed settings screen 304 allows the user to specify more detailed print settings. WSDA 207 is an application for extending the functionality of the printer driver 201 provided by a vendor that provides a printing device (hereinafter, "printer vendor"). Note that the image that appears to be an original image, displayed on the right side of the detailed settings screen 304 provided by WSDA in FIG. 3(C), is a sample image originally provided by WSDA. In other words, this sample image is not a preview image based on drawing data generated by a UWP application, but rather a sample image that does not change even if the drawing data changes.

[0018] WSDA207 receives information indicating print settings from the MPD, changes the setting information according to the user's settings, and returns the information to the MPD. The information indicating print settings is written in XML format based on a format defined by the OS and is contained in data called a PrintTicket. WSDA207 can reference and change the PrintTicket, but cannot reference the drawing data.

[0019] The PrintTicket is generated by the configuration module 208 of the selected printer driver 201. WSDA 207 calls the configuration module 208 to generate (edit) a PrintTicket that reflects the user's specifications. The configuration module 208 also has the function of generating PrintCapabilities, which describes the functions and selection items that can be set by the selected printer driver 201 in XML format based on a format defined by the OS. WSDA 207 and PEX 209, described below, provide a user interface based on the information described in this PrintCapabilities. The editing application 205, described below, can obtain the PrintCapabilities generated by the configuration module 208 via OS functions.

[0020] 2, configuration module 208 is shown as a function of printer driver 201, but configuration module 208 is originally a component of the OS. However, in a V4 printer driver, the driver itself does not have a configuration module, so configuration module 208, which is a component of the OS, is used as the driver's configuration module. Printer vendors can customize the operation of configuration module 208 using a GPD or Javascript (registered trademark) Constraint (not shown) included in printer driver 201.

[0021] After the print settings shown in Fig. 3 are made, a print request is made when the "Print" button is pressed on the settings screen 302 provided by the MPD of the OS. When a user issues a print instruction on the MPD, the UWP application 202 receives the request from the MPD and generates the print data required for printing. This print data is an XPS document written in a format known as XML Paper Specification (hereinafter, XPS), and is also referred to as intermediate data. The print data in this embodiment includes the aforementioned PrintTicket and drawing data generated by a drawing application.

[0022] The XPS document generated by the UWP application 202 is passed to an editing application launcher 204, which is an OS component. The editing application launcher 204 determines via DeviceMetadata (hereinafter simply referred to as Metadata) whether an editing application 205 associated with the printer driver 201 exists and is configured to be launched. If it is determined that the editing application 205 exists and is configured to be launched, the editing application 205 is launched. Note that if a corresponding editing application 205 does not exist, the editing application launcher 204 stores the XPS document as a spool file 206.

[0023] The relationship between WSDA 207 and editing application 205 will now be described. WSDA 207 is an extension application that extends the functionality of the printer driver. Specifically, WSDA 207 can provide a GUI, such as a print setting screen, when a driver that does not have the functionality to provide a Graphical User Interface (hereinafter referred to as "GUI" or simply "user interface"), such as a V4 printer driver, is selected. However, unlike a V3 printer driver, WSDA 207 cannot provide a function that prompts the user to perform some operation by displaying a GUI when a print request is issued by the user. Therefore, this embodiment uses editing application 205, which operates in response to a print request from the user.

[0024] The editing application 205 is called a Print Workflow Application, and like the WSDA 207, it is an extension application for extending the functionality of the printer driver 201 provided by the printer vendor. In other words, when a driver that does not have the functionality to provide a GUI, such as a V4 printer driver, is selected, a GUI such as a print setting screen can be provided based on instructions from the OS. However, when a V3 driver that has the functionality to provide a GUI is selected, the OS does not start the editing application launcher 204, but instead stores the XPS document generated by the drawing application as a spool file 206. In other words, when a V3 driver is selected, the editing application 205 is not started, and no GUI is provided.

[0025] Note that both WSDA 207 and editing application 205 are standalone applications, and are not provided as part of the printer driver 201. Although WSDA 207 and editing application 205 can be configured together as a single application, for the sake of convenience, they are described here as separate applications in order to explain the differences from conventional WSDA.

[0026] The OS typically obtains the WSDA 207 and editing application 205 via the Internet from an application distribution system (not shown) (a server managed by Microsoft®). Furthermore, printer vendors provide metadata in advance to a metadata server managed by Microsoft®. Therefore, the appropriate WSDA 207 and editing application 205 are automatically installed on the host computer 101. More specifically, the metadata contains the device identification information (Hardware ID) of the printing device, which is the device, and the software identification information (Identity Name) of the WSDA and editing application. Furthermore, the printer driver's INF file contains the device identification information (Hardware ID). Therefore, once the printer driver is installed, the OS downloads the corresponding metadata based on the device identification information. The OS then references the metadata to identify the software identification information (Identity Name) associated with the corresponding device identification information (Hardware ID), and is able to obtain the corresponding WSDA and editing application. Therefore, the printer driver 201 is associated with the WSDA 207 and the editing application 205.

[0027] The editing application 205 can display a user interface that accepts operation instructions from the user. It can also receive XPS documents, which are print data, and edit the PrintTicket and drawing data within the XPS documents. WSDA 207, which is also an extension application, can display a user interface, but cannot obtain XPS documents, and therefore cannot view or edit the drawing data within XPS documents.

[0028] When the editing application 205 outputs an XPS document edited as necessary, the OS stores it as a spool file 206. Once the spool file 206 is stored, processing is handed over to a filter pipeline manager (not shown) within the driver 201, and a configuration file (not shown) controls the number and order of filters. The filter pipeline manager is a mechanism for printing by passing data through multiple filters. In this embodiment, the filter group 210 includes a layout filter 211, which is a layout processing unit, and a print command filter 212, which is a print command conversion unit. Note that the filter pipeline manager operates as a function of the printer driver 201, but the filter pipeline manager itself is originally a component of the OS. However, in the V4 printer driver, the driver itself does not have a filter pipeline manager, so the filter pipeline manager, which is a component of the OS, is used as a driver function.

[0029] The layout filter 211 has a function of inputting an XPS document stored in the spool file 206, performing page layout processing based on print setting information, and outputting the laid-out XPS document. Layout processing includes, for example, layout printing, in which multiple pages are printed on one sheet of paper, and poster printing, in which one page is printed on multiple sheets of paper.

[0030] The print command filter 212 receives the output from the layout filter 211 as input, and converts the XPS document, which is intermediate data, into print commands that can be interpreted by the printing device 102 according to the print setting information, and outputs the converted print commands. When the print command filter 212 converts the input XPS document into image data, the print command filter 212 is generally called a rendering filter. Rendering filters are often found in printer drivers for inexpensive raster printers, such as inkjet printers. When the print command filter 212 operates as a rendering filter, it converts the input XPS document into image data. After that, the image data undergoes image processing such as color space conversion and binarization, and is then converted into print commands that can be interpreted by the raster printer.

[0031] In a high-performance printer such as a page printer, if the types of print commands that the printing device 102 can interpret include XPS, the print command filter 212 edits the input XPS document and outputs the XPS document. If processing by the print command filter 212 is not required, the input XPS document may be output as is, or the print command filter 212 may not be included in the printer driver 201. This completes the basic processing of printing from the UWP application 202.

[0032] In the case where the drawing application is a Legacy application 203 such as a Win32 application, in order to set the print settings, Printer Extensions 209 (hereinafter referred to as PEX) is launched instead of WSDA. PEX 209 is launched via the configuration module 208 and can provide a user interface through which the user can specify the print settings. PEX 209 may be provided as a component within the driver package together with the printer driver 201, or may be distributed separately. Similar to WSDA 207, PEX 209 can reference and modify the PrintTicket, but cannot obtain the XPS document and cannot reference or edit the drawing data within the XPS document. Also, PEX 209 is launched only when instructed by the user on the Legacy application 203 and is not necessarily launched at the time of printing. When printing is instructed in the Legacy application 203, the Legacy application 203 generates an XPS document as the print data. Then, the editing application 205 acquires and outputs the XPS document output from the Legacy application 203. The subsequent process is omitted because it is the same as that during the printing process from the UWP application 202.

[0033] <Configuration of XPS Document (XPS Document)> Here, we will briefly explain XPS documents using Figure 12. XPS documents have a tree structure rooted at a FixedDocumentSequence (FDS). An FDS contains multiple FixedDocuments (FDs), and an FD contains multiple FixedPages (FPs). An FP describes the contents of a document page in XML format and contains the content that will actually be displayed or printed. The FDS, FD, and FP are sometimes called XPS parts. Resources such as fonts and images used in the page contents of an FP can be shared by multiple FPs. Furthermore, the FDS, FD, and FP can each have print settings in a PrintTicket. Here, the print settings used when printing each FP are the PrintTicket for the FDS, the PrintTicket for the parent FD of the FP to be printed, and the PrintTicket for the FP to be printed merged together. The PrintTicket for the FDS is also called the PrintTicket for the job.

[0034] Figure 12 is an example block diagram showing the logical structure of an XPS document. The logical structure of XPS document 401 is a tree structure with FDS 402 as the root. FDS 402 has FD 403 and FD 404 as its children. FD 403 has FP 405 and FP 406 as its children. FD 404 has FP 407 as its child. For the PrintTicket describing print settings, FDS 402 holds PrintTicket 408. FD 403 holds PrintTicket 409, FP 405 holds PrintTicket 410, and FD 404 holds PrintTicket 412. In this example, PrintTicket 408 in FDS 402 corresponds to the PrintTicket of the job. PrintTicket 409 in FD 403 and PrintTicket 412 in FD 404 each correspond to the PrintTicket of the document. And PrintTicket 410 in FP 405, at the lower level, corresponds to the PrintTicket of the page.

[0035] 12, FP406 and FP407 do not hold a PrintTicket. Here, for example, the PrintTicket used when printing FP405 is a merged PrintTicket of PrintTicket408, PrintTicket409, and PrintTicket410. Furthermore, FP406 and FP407, which do not hold a PrintTicket, use the PrintTicket at the higher level. For example, the PrintTicket used when printing FP406 is a merged PrintTicket of PrintTicket408 and PrintTicket409.

[0036] 12, the FP 405 and the FP 406 share resources 411 such as fonts and images, and the FP 507 uses resources 413 such as fonts and images. Furthermore, the FP 407 holds a thumbnail image 414.

[0037] <Editing application setup process> 4 is a diagram showing the main processing flow of the setup processing of the editing application 205 in this printing system. Hereinafter, the editing application 205 may be described as the subject of each process, but in reality, the corresponding function is realized by the CPU 111 executing the corresponding program (the program of the editing application 205). Note that not all processing is necessarily executed sequentially in one process; there may be cases where processing is transferred to the OS side once and then called again by the OS. This is merely a flow that conveniently and easily illustrates the main processing of the editing application 205.

[0038] When the editing application launcher 204 receives an XPS document from the drawing application that issued the print request, it invokes initialization processing for the editing application 205 associated with the printing device 102. After the print settings described above in FIG. 3 are configured, pressing the "Print" button on the setting screen 302 provided by the OS causes a print request to be made and the XPS document to be output from the drawing application. During the initialization processing, the editing application 205 registers the setup processing shown in FIG. 6 and the editing and termination processing shown in FIG. 8, which will be described later, as event handlers defined by the OS. When the editing application 205 completes the initialization processing, the OS executes the setup processing for the editing application 205 that has been registered as a defined event handler. FIG. 4 shows this setup processing.

[0039] First, the editing application 205 obtains the PrintTicket for the job stored in the XPS document (S401). As explained in Figure 2, the PrintTicket is data that includes information indicating print settings, and is generated by the configuration module 208 based on the print settings specified by the user. The PrintTicket can be obtained from the XPS document by calling a specific API of the OS.

[0040] Next, the PrintTicket for the acquired job is referenced to determine whether a print preview launch instruction exists (S402). A specific method for checking a PrintTicket will be described later with reference to FIG. 6. The print preview launch instruction may be implemented using a method other than a PrintTicket, as long as it can be specified by WSDA 207 or PEX 209 and referenced by the editing application 205. For example, a configuration may be used to utilize the UserPropertyBag or QueuePropertyBag provided by the OS as a storage location for printer driver 201 configuration information. Note that a print preview refers to the display on the display unit 119 of an image of the print result that will be generated on paper based on the print settings and the drawing data generated by the drawing application. In other words, the presence of a print preview launch instruction in the PrintTicket indicates that the user has instructed the display of the print preview screen. By viewing the print preview screen, the user can confirm whether the desired print result will be obtained before printing and, if necessary, modify the print settings, delete specific pages, or cancel the print process.

[0041] If it is determined in S402 that a print preview startup instruction exists, the editing application 205 saves stored information indicating that the print preview is "enabled" (S403). The process of S403 and the storage of information of the editing application 205 described below use, as an example, local storage provided by the OS. The stored information stored in local storage is information related to print settings, and details will be described later using FIG. 10.

[0042] Thereafter, a specified API provided by the OS is called to instruct the editing application 205 to provide a user interface in the subsequent processing (S404). By executing this API, the UI processing of the editing application 205 shown in Fig. 7 (described later) is called, and the editing application 205 displays the user interface.

[0043] If it is determined in S402 that there is no print preview start instruction, the editing application 205 stores in Local Storage that the print preview is "invalid" in the stored information in Local Storage (S405).

[0044] As described above, in the setup process of the editing application 205, the editing application 205 determines whether the startup of the user interface is necessary, and if so, instructs it and stores the information necessary for subsequent processing.

[0045] <Configuration Examples of PrintTicket and PrintCapabilities> FIG. 5 is an example of PrintCapabilities of a printer driver. Note that these PrintCapabilities are described mainly for the parts necessary for explanation, and some are omitted.

[0046] PrintCapabilities represents the functions (Features) of the driver and the settable items (Options) in each function. In the example of FIG. 5, PrintCapabilities 500 represents that for the paper type (PageMediaType), plain paper (Plain) and photo paper (PhotoPaper) can be set.

[0047] FIG. 6 is an example of a PrintTicket generated based on PrintCapabilities 500 of the printer driver shown in FIG. 5. As shown in FIG. 6, the PrintTicket stores the set values of each function defined in PrintCapabilities. For example, the Feature "psk:PageMediaType" indicates the paper type to be used for printing. In the PrintTicket of FIG. 6, it indicates that "psk:Plain", that is, plain paper is specified. The determination process of whether there is a print preview start instruction in S402 is to determine whether the specified value of the Feature "ns0000:JobPreview" is "ns0000:ON".

[0048] <UI processing of editing application> If the UI display specification is executed in S404, the OS calls the UI processing of the editing application 205 after the setup processing of the editing application 205 is completed. FIG. 7 is a diagram showing the main processing flow of the UI processing of the editing application 205 in this printing system. Hereinafter, the editing application 205 will be described as the subject of each process, but in reality, the corresponding function is realized by the CPU 111 executing the corresponding program. Note that not all processes are necessarily executed sequentially in a single process; there may be cases where the processing is transferred to the OS side once and then called again by the OS. This is merely a flow that conveniently and easily illustrates the main processing of the editing application 205. Note that if the UI display specification is not executed in S404, the OS skips the UI processing shown in FIG. 7 and calls the editing and termination processing described below.

[0049] First, the editing application 205 acquires a PrintTicket for a job using a specified API of the OS (S701). The editing application 205 is provided with a means for acquiring a PrintTicket for a job as a function of the OS. By using this, the editing application 205 can easily refer to and change the print settings for a job without directly handling the PrintTicket in the XPS document. In addition, the PrintTicket for a job can be acquired before the XPS document is completely generated, which contributes to improving performance by processing it in advance. Furthermore, the editing application 205 acquires PrintCapabilities using a specified API of the OS based on the acquired PrintTicket (S702).

[0050] Next, the editing application 205 configures (generates) a user interface having control items that can specify functions to be provided in the print preview, based on the acquired PrintTicket and PrintCapability (S703).

[0051] The editing application 205 then acquires the XPS document using a predetermined API of the OS (S704), and analyzes the contents of the XPS document, and displays a screen based on the XPS document on the display unit 119 (S705).

[0052] As an example of a user interface generated by the editing application 205, FIG. 8 shows an example of a print preview screen provided by the editing application 205. Display item 801 is a control item for changing the page displayed in the print preview. The user can use this control item to change the displayed page and also check the total number of pages that will be printed with the current print data and print settings. Display item 802 is a print preview screen that shows an image of the print result of the specified page. Display item 803 is a control item for specifying the layout printing function. Display item 804 is a control item for specifying the paper type. Since display items 803 and 804 display the driver's functions (functions supported by the driver), as mentioned above, the selection items conform to PrintCapabilities. Display items 805 and 806 are control items for specifying the print range. Display item 805 allows the user to specify the type of print range. Examples of print range types include "print all pages" and "print specified range." Furthermore, display item 806 allows the user to specify the print range when "Print specified range" is selected in display item 805. In the example of FIG. 8, pages 1 to 2 are specified as the print target. Note that the printer driver 201 in this example does not have a function for changing the print range. In other words, the PrintCapability of the printer driver 201 in this example does not include a function for changing the print range. Display item 807 is a button for starting printing. Display item 808 is a cancel button, and when the user presses this button, the subsequent print processing is canceled.

[0053] In this embodiment, the editing application 205 can realize a more accurate print preview by reflecting the setting values set in the PrintTicket.

[0054] The XPS document acquired by the editing application 205 was generated by the drawing application that issued the print request and is data prior to processing by the printer driver 201. In other words, the editing application 205 acquires the XPS document before the printer driver 201 does. Therefore, even if layout printing settings are specified in the PrintTicket in the XPS document, the drawing data in the XPS document received by the editing application 205 has not undergone layout processing. Taking such cases into consideration, the editing application 205 can display a print preview screen that reflects the print settings on the display unit 119. Then, when the print settings are changed on the user interface displayed by the editing application 205, the editing application 205 redisplays a print preview screen that reflects the changes on the display unit 119.

[0055] There are two methods for creating data for preview display by the editing application 205. The first method is for the editing application 205 to edit the drawing data itself of the XPS document. In this method, the editing application 205 edits the drawing data to reflect the layout printing settings. The second method is for the editing application 205 to change the way the drawing data is displayed without editing the drawing data of the XPS document. In this method, for example, in the case of a 2-in-1 layout setting, the editing application 205 simply aligns two pages of the drawing data, and the layout printing settings appear to be reflected. In S705, the preview display is performed using the second method. However, the preview display in this embodiment can also be performed using the first method.

[0056] The editing application 205 receives input from the user (S706), and when a print instruction is given on the user interface shown in Fig. 8, it saves the setting values of each function specified by the user in the local storage as the storage information shown in Fig. 10 (S707). This completes the UI processing of the editing application 205.

[0057] This configuration realizes a print preview function that displays a print image that is close to the print result before printing, based on the drawing data generated by the drawing application and the print settings specified by the user. Furthermore, the print preview screen provided by the editing application 205 also allows changes for final adjustment of print settings while checking the print result and the number of pages to be printed. These functions prevent misprints and provide a means for final adjustment, such as limiting the number of pages printed.

[0058] <Interface used by the editing application 205> In this way, using the editing application 205 makes it possible to provide functions that could not be provided by the WSDA 207 alone. However, because the editing application 205 is launched in response to a print request from a user, the following considerations are necessary. That is, when the editing application 205 is launched in response to a print request, it always acquires and outputs an XPS document. In other words, the editing application 205 launches even if it does not provide the function to the user when the startup conditions are met. For example, if the editing application 205 provides a print preview function, the editing application 205 launches and acquires and outputs an XPS document even if the user does not use the print preview function. This could result in performance degradation simply due to the existence of the editing application, even if the user does not use the preview function.

[0059] The editing application 205 has two types of access methods for the input / output interface used to acquire and output XPS documents: a stream-style interface and a document-style interface. The stream-style interface treats the XPS document as a byte stream. In other words, data acquired in stream format is a ZIP-compressed collection of XPS parts. Therefore, the stream-style interface minimizes performance degradation. Note that the XPS parts referred to here refer to FDS, FD, FP, and their associated PrintTickets, as well as resources such as images and fonts. However, editing data acquired using the stream-style interface requires parsing the byte stream data, which requires complex processing. On the other hand, the document-style interface treats the XPS document as a package with APIs that enable access to each XPS part. When using the document-style interface, the editing application 205 acquires the XPS document in a format known as the object model. The document-style interface handles the XPS document in units of XPS parts, and inputs and outputs each XPS part separately. Therefore, when using the document-style interface, there is no need to parse the XPS document to extract the XPS parts. Therefore, editing XPS documents using the document format interface is easier than with stream formats. However, because data analysis is required to generate a package, processing cannot begin until all the necessary data is available in the XPS document, which can result in a decrease in performance.

[0060] Therefore, in this embodiment, an appropriate interface is used as the input / output interface for the XPS document in the editing application 205. Details will be explained below. Note that the input / output interface for the XPS document in the UI processing of the editing application 205 in Fig. 7 may use either the stream format or the document format, since it does not involve editing of the XPS document. Note that if the XPS document is to be edited during the display processing of S705, it is recommended to use an interface in document format.

[0061] The processing of the editing application 205 in FIGS. 4 and 9 is background processing, and the processing of the editing application 205 in FIG. 7 is foreground processing.

[0062] <Editing and closing process of editing application> The editing process of the editing application 205 will be described with reference to FIG. 9. After the UI process of the editing application 205 of FIG. 7 is completed, the OS invokes the editing and termination process of the editing application 205 of FIG. 9. If the UI display specification process of S404 is not executed, the OS invokes this process without invoking the UI process of the editing application 205 of FIG. 7. Hereinafter, the editing application 205 may be described as the subject of each process, but in reality, the corresponding function is realized by the CPU 111 executing the corresponding program. Also, not all processes are necessarily executed sequentially in a single process; there may be cases where the process is transferred to the OS side once and then invoked again by the OS. This is merely a flow diagram illustrating the main processes of the editing application 205 for the sake of convenience and clarity.

[0063] The editing application 205 reads the UI display information in the storage information saved in S403 (S901). Then, in S902, the editing application 205 determines whether a UI display has been performed. If it is determined in S902 that a UI display has not been performed, it is decided to use a stream-format interface, and the editing application 205 acquires the XPS document using the stream-format interface (S903). This is because the absence of a UI display means that editing of the XPS document is not necessary, and therefore using a stream-format interface is advantageous in terms of performance.

[0064] Furthermore, the editing application 205 outputs the XPS document acquired in S903 without editing it, using the same stream format interface as when it was acquired (S904). When the editing application 205 outputs the XPS document, the OS stores it as a spool file 206. Then, processing by the printer driver 201 begins.

[0065] If it is determined in S902 that a UI has been displayed, the editing application 205 reads the information related to the print settings saved as storage information in S707 (S905). In S906, the editing application 205 determines whether the user has changed the settings before and after the UI was displayed. If it is determined in S906 that the settings have not been changed before and after the UI was displayed, the editing application 205 acquires the XPS document using a stream-format interface (S903). Then, the editing application 205 outputs the XPS document as is using the stream-format interface (S904). This is because the absence of an instruction to change the settings means that editing of the XPS document is not necessary, and therefore using a stream-format interface is advantageous in terms of performance.

[0066] If the editing application 205 determines in S906 that a setting change has been made, it determines whether any of the changed settings require the editing application 205 to edit the job's PrintTicket (S907). If any of the changed settings require PrintTicket editing, the editing application 205 acquires the job's PrintTicket using a predetermined API of the OS (S908). The editing application 205 then edits the job's PrintTicket to reflect the driver function setting values in the stored information acquired in S905 in the job's PrintTicket (S909). Note that the driver function refers to a function that the printer driver 201 has (that is, that the printer driver 201 supports). The configuration of the information stored in Local Storage to realize these processes and the method of reflecting the setting values in the job's PrintTicket will be described later with reference to FIG. 10. Note that if multiple driver functions have been changed by UI input in S706, the editing application 205 reflects the setting values of all of the driver functions in the job's PrintTicket.

[0067] Next, in S910, the editing application 205 determines whether any of the changed settings require editing of the XPS document by the editing application 205. This determination is made based on whether at least one of the drawing data in the XPS document and the PrintTicket in the XPS document (excluding the job's PrintTicket) requires editing by the editing application 205. Note that the job's PrintTicket is excluded from the determination in S910 because the job's PrintTicket has already been edited in S907 to S909.

[0068] If it is determined that there are no settings that require XPS editing by the editing application 205 among the settings changed in S910, it is determined to use the stream-style interface. Then, the editing application 205 acquires and outputs the XPS document using the stream-style interface (S903, S904). If it is determined that there are settings that require XPS editing by the editing application 205 among the settings changed in S910, it is determined to use the document-style interface. Then, the editing application 205 acquires the XPS document using the document-style interface (S911).

[0069] In S912, the editing application 205 edits the XPS document acquired in S911 based on the functions and their setting values specified by the user. The editing application 205 then outputs the edited XPS document using a document format interface (S913). When the editing application 205 outputs the edited XPS document, the OS stores it as a spool file 206. Once the XPS document is stored in the spool file 206, processing by the printer driver 201 begins.

[0070] In FIG. 9 , the editing application 205 determines whether the job's PrintTicket needs to be edited in steps S907 to S909, and then acquires and edits the job's PrintTicket before acquiring the XPS document in step S911. In other words, the editing application 205 references and changes the job's print settings without directly handling the PrintTicket in the XPS document. This is because, as explained in the processing of step S701, the job's PrintTicket can be acquired before the XPS document is completely generated. Acquiring and editing the job's PrintTicket first contributes to improved performance. However, this embodiment is not limited to this. Steps S907 to S909 may be omitted. In other words, it may be determined in step S910 whether the XPS document needs to be edited, including whether the job's PrintTicket needs to be edited. Then, in step S912, editing of the XPS document may be performed, including editing the job's PrintTicket.

[0071] Here, the information stored in the Local Storage will be described with reference to Fig. 10. Fig. 10 is a diagram showing an example of information stored in the Local Storage. The stored information consists of names and values, and includes information related to print settings.

[0072] 4, a setting value of ON information is added to the Local Storage with the name RequestUI to indicate that the UI display is enabled. Also, in the process of S405, a setting value of OFF information is added to the Local Storage with the name RequestUI to indicate that the UI display is disabled.

[0073] In the process of S707 in Fig. 7, the setting values for each function specified by the user on the print preview screen are saved in the local storage. In the example of Fig. 10, it is assumed that the user has changed three settings, Page Layout, Pages, and Range, on the preview screen of Fig. 8.

[0074] In response to a change in layout, an item named JobNUpAllDocumentsContiguously, which is a setting item for the corresponding PrintTicket, is stored in Local Storage. The option name PagePerSheet_2, which corresponds to the setting item for the Page Layout specified by the user, is added as a setting value to this item. In other words, when the layout is changed on the UI in Figure 8, new information indicating the change in print settings is added to the stored information, which is information related to the print settings in Figure 10.

[0075] For the Pages settings, information named "Pages" with "Ranges" indicating a range specification as a setting value is added to Local Storage. Also, because a range specification was specified in Pages, information indicating a specific range is added to Local Storage with "Range" as a setting value indicating the print range of "1-2." In other words, by changing the Pages and Ranges settings on the UI in Fig. 8, new information indicating the change in print settings is added to the stored information, which is information related to print settings in Fig. 10.

[0076] In this way, the processing of Fig. 9 is performed by referring to the storage information of Fig. 10 stored in Fig. 4 and Fig. 7. Specifically, in the processing of S902, the editing application 205 checks the setting value in RequestUI of Fig. 10. If the setting value is ON, it is determined that the UI is to be displayed.

[0077] In the process of S906, the editing application 205 checks the setting items stored in the local storage from the second row onwards in Fig. 10. In the case of Fig. 10, since the information on JobNUpAllDocumentsContiguously, Pages, and Range has been added, it is determined that the settings have been changed.

[0078] In step S907, the editing application 205 determines whether the job's PrintTicket needs to be changed based on the information stored in Local Storage. Specifically, if it determines that the settings for a function supported by the driver, such as layout printing, have changed, it determines that the job's PrintTicket needs to be changed. In the example of Figure 10, because the information JobNUpAllDocumentsContiguously has been added, it determines that the layout printing settings have changed and that the job's PrintTicket needs to be changed.

[0079] In step S909, the editing application 205 edits the job's PrintTicket. Specifically, the editing application 205 sets the setting values in the storage information as options for the features in the PrintTicket that correspond to the names in the storage information in FIG. 10. That is, the option for the feature JobNUpAllDocumentsContiguously in the job's PrintTicket in FIG. 6 is changed to PagePerSheet_2. This causes the setting changes specified by the user to be reflected in the job's PrintTicket. The printer driver 201 can then generate print commands to send to the printer in accordance with the PrintTicket settings. That is, in this example, the printer driver 201 edits the drawing data in the XPS document and generates print commands to execute layout printing, which prints two pages per sheet, based on the job's PrintTicket.

[0080] In the process of S910, the editing application 205 determines, based on the information stored in the local storage, whether there are any changes that require editing of the XPS document by the editing application 205. For example, if the printer driver 201 does not support the function of changing the print range settings, the printer driver 201 cannot change the XPS document to change the print range. Therefore, editing of the XPS document by the editing application 205 is necessary, and in such a case, it is determined that there are any changes that require editing of the XPS document. In the example of FIG. 10, because the "Range" item has been added, it is determined that the print range has been changed, a function that the printer driver 201 does not support, and it is determined that editing of the XPS document by the editing application 205 is necessary.

[0081] Then, in S912, the editing application 205 edits the XPS document. Specifically, because the print range is set to "from page 1 to page 2" in the Range item of the storage information in Fig. 10, page data from page 3 onward in the drawing data of the acquired XPS document is deleted from the XPS document. As a result, the printer driver 201 generates a print command using the XPS document edited by the editing application 205 as input. Therefore, the printer driver 201 itself can print only the specified range without editing the XPS document to change the print range.

[0082] As described above, in this embodiment, it is possible to provide a GUI in response to a print request by using the editing application 205. Furthermore, based on input of print settings on the GUI provided by the editing application 205, the editing application 205 can edit the PrintTicket of the job and the XPS document.

[0083] Although the functions supported by printer drivers (functions that can be provided) vary depending on the type of printer driver, the editing application 205 of this embodiment can reduce the functional disparity due to the type of printer driver. In other words, the editing application 205 can edit XPS documents for functions (extended functions) that the printer driver does not support. Therefore, even functions not supported by the printer driver can be provided to the user. In particular, even a printer driver with only basic functions, such as a standard printer driver, can provide functions similar to those of a model-specific printer driver by using the editing application 205. For functions supported by the printer driver, editing may be performed to reflect setting changes in the PrintTicket, after which editing of the rendering data of the XPS document may be left to the printer driver. Furthermore, the editing application 205 may determine whether a driver supports a function based on pre-stored function information or by acquiring PrintCapability.

[0084] Furthermore, the editing application 205 in this embodiment uses a stream-style interface when editing of the XPS document by the editing application 205 is not required. Furthermore, when editing of the XPS document by the editing application 205 is required, a document-style interface is used. That is, when the user does not use a print preview display or uses the print preview display but does not change the settings, editing of the XPS document by the editing application 205 is not required, and therefore the editing application 205 uses a stream-style interface. This makes it possible to reduce the impact of performance degradation caused by starting the editing application 205. On the other hand, when editing of the XPS document by the editing application 205 is required, a document-style interface is used, thereby enabling editing of the XPS document by the editing application 205.

[0085] <Embodiment 2> Next, a second embodiment will be described. In the first embodiment, the editing application 205 displays a UI to present configurable functions to the user, and determines whether or not it is necessary to edit the XPS document using the editing application 205 in response to a user instruction. The interface is then switched depending on whether or not it is necessary to edit the XPS document using the editing application 205. On the other hand, the second embodiment is characterized in that the editing application 205 switches the interface depending on whether or not a UI is displayed by the editing application 205.

[0086] The hardware configuration of the printing system is the same as in the first embodiment, so a description thereof will be omitted. Furthermore, the flow of each process is also the same in the second embodiment, except for the flow of editing and termination processing of the editing application 205 in the first embodiment (FIG. 9). Therefore, the following description will mainly focus on the parts that differ from the first embodiment.

[0087] FIG. 12 is a diagram showing an example of editing and termination processing in the second embodiment. After the UI processing of the editing application 205 of FIG. 7 is completed, the OS invokes the editing and termination processing of the editing application 205 of FIG. 12. Note that if the UI display specification processing of S404 is not executed, the OS invokes this processing without invoking the UI processing of the editing application 205 of FIG. 7. Hereinafter, the editing application 205 may be described as the subject of each processing, but in reality, the corresponding function is realized by the CPU 111 executing the corresponding program. Also, not all processing is necessarily executed sequentially in a single process; there may be cases where processing is transferred to the OS side once and then invoked again by the OS. This is merely a flow diagram showing the main processing of the editing application 205 for convenience and ease of understanding.

[0088] The editing application 205 reads the UI display information in the storage information of FIG. 10 that was saved in S403 (S1201). Then, in S1202, the editing application 205 determines whether a UI was displayed. If it is determined in S1202 that a UI was not displayed, the editing application 205 acquires the XPS document using a stream-format interface (S1203). This is because the absence of a UI display means that no changes have been made to the print settings and there is no need to edit the XPS document. Therefore, using a stream-format interface is advantageous in terms of performance.

[0089] In S1204, the editing application 205 outputs the XPS document acquired in S1203 without editing it, as is, using a stream format interface. When the editing application 205 outputs the XPS document, the OS stores it as a spool file 206, and processing by the printer driver 201 begins.

[0090] If it is determined in S1202 that a UI has been displayed, the editing application 205 reads the information related to the print settings in FIG. 10 that was saved as stored information in S707 (S1205). Next, the editing application 205 determines whether the stored information in FIG. 10 contains any setting changes that require editing of the job's PrintTicket (S1206). If any setting changes that require editing of the job's PrintTicket are present, the editing application 205 acquires the job's PrintTicket using a predetermined API of the OS (S1207). Then, the editing application 205 reflects the setting values related to the functions (driver functions) supported by the printer driver 201 in the stored information acquired in S1205 in the job's PrintTicket (S1208). Note that the processing in S1201 to S1208 is the same as the processing in S901 to S909 in FIG. 9, excluding S906, and therefore details are omitted.

[0091] Next, the editing application 205 acquires the XPS document using a document format interface (S1209). In S1210, it is determined based on the storage information acquired in S1205 whether there are any setting changes that require editing of the XPS document by the editing application 205. The determination process in S1210 proceeds to a different step after the determination, but the content of the determination is the same as S910 in Fig. 9, so details will be omitted.

[0092] If it is determined in S1210 that the stored information contains setting changes that require the editing application 205 to edit the XPS document, the editing application 205 edits the acquired XPS document based on the functions and setting values specified by the user (S1211).The editing application 205 then outputs the edited XPS document using a document format interface (S1212). Note that the processes of S1211 and S1212 are the same as S911 and S912 in Fig. 9, and therefore details will be omitted.

[0093] If it is determined in S1210 that there are no setting changes in the stored information that require the editing application 205 to edit the XPS, the editing application 205 outputs the acquired XPS document using the document format interface without editing it (S1212).

[0094] As described above, the editing application 205 in this embodiment uses a stream-based interface when not displaying a UI, and uses a document-based interface when displaying a UI. This makes it possible for the editing application 205 to prevent performance degradation caused by starting the editing application 205 when the user is not using UI functions such as a print preview function.

[0095] <Embodiment 3> Next, a third embodiment will be described. In the first and second embodiments, the editing application 205 provides functions that can be set by the user by displaying a UI. However, the editing application 205 can edit an XPS document without displaying a UI. Therefore, the editing application 205 of this embodiment does not instruct the user to display a UI in the setup process. By not instructing the user to display a UI, the editing application 205 executes editing and termination processes without calling the UI process. For example, in a case where a specific watermark (stamp) is forcibly added according to a setting made in advance, the editing application 205 does not require a user instruction. Therefore, the editing application 205 does not display a UI, but edits the XPS document to add the watermark. The processing of this embodiment will be described in detail below.

[0096] The hardware configuration of the printing system is the same as in the first embodiment, and therefore a description thereof will be omitted. Also, with regard to the flow of each process, differences from the first embodiment will be mainly described.

[0097] FIG. 11 is a diagram showing an example of editing and termination processing in the third embodiment. After the setup processing of the editing application 205 in FIG. 4 is completed, the OS calls the editing and termination processing of the editing application 205 in FIG. 11. Hereinafter, the editing application 205 may be described as the subject of each process, but in reality, the corresponding function is realized by the CPU 111 executing the corresponding program. Also, not all processing is necessarily executed sequentially in a single process; there may be cases where processing is transferred to the OS side once and then called again by the OS. This is merely a flow diagram showing the main processing of the editing application 205 for convenience and in an easy-to-understand manner.

[0098] The editing application 205 acquires pre-stored forced setting information (S1101). It is conceivable to use the UserPropertyBag or QueuePropertyBag provided by the OS as a storage location for the information, but PrintTicket or Local Storage may also be used. The forced setting information is set in advance by a system administrator or the user themselves. Examples of forced settings include adding a specific watermark or forcibly turning on the double-sided printing setting.

[0099] In S1102, the editing application 205 determines whether setting compulsion information exists. That is, the editing application 205 determines whether a function that is forcibly set even if the setting from the user is not accepted on the UI provided by the editing application 205 is registered.

[0100] If it is determined in S1102 that no setting compulsion information exists, editing of the XPS document becomes unnecessary, and so the editing application 205 acquires and outputs data using a stream-format interface (S1103, S1104). On the other hand, if it is determined in S1102 that no setting compulsion information exists, editing of the XPS document becomes necessary, and so the editing application 205 acquires data using a document-format interface (S1105).

[0101] Then, in S1106, the editing application 205 edits the acquired XPS document, and in S1107, the edited XPS document is output using the document format interface.

[0102] If the driver functions include a forced setting function, the editing application 205 only needs to reflect the setting in the PrintTicket in the XPS document. In other words, the editing application 205 does not need to edit the drawing data in the XPS document, but only needs to edit the PrintTicket in the XPS document. Also, in this example, as in S910 of FIG. 9, it may be configured to first determine whether a setting change that requires a change to the XPS document will occur, and to use the document format interface only if a change to the XPS document is required.

[0103] According to this embodiment, even in cases where the editing application 205 does not display a UI but an XPS document needs to be edited, it is possible to suppress a decrease in performance caused by the editing application 205 being launched.

[0104] <Embodiment 4> Each of the above-described embodiments can also be realized by executing the following: That is, a recording medium storing software program code that realizes the functions of the above-described embodiments is supplied to a system or device. Then, a computer (CPU, MPU, etc.) of the system or device reads and executes the program code stored on the recording medium. In this case, the program code read from the storage medium itself realizes the functions of the above-described embodiments, and the storage medium storing the program code constitutes the present invention. Furthermore, it is not necessary to realize all of the above-described processing by software; some or all of the processing may be realized by hardware such as an ASIC. Furthermore, the CPU is not limited to one that performs all processing by a single CPU; multiple CPUs may perform processing in cooperation with each other as appropriate.

[0105] Examples of storage media that can be used to supply the program code include flexible disks, hard disks, optical disks, magneto-optical disks, CD-ROMs, CD-Rs, magnetic tapes, non-volatile memory cards, ROMs, and DVDs.

[0106] Furthermore, an operating system (OS) running on a computer may perform part or all of the processing based on instructions from the program code of the above-described embodiment.

[0107] Furthermore, the program code read from the storage medium may be written to a memory provided on a function expansion board inserted into a computer or a function expansion unit connected to the computer, and a CPU provided on the function expansion board or function expansion unit may perform some or all of the actual processing based on the instructions of the program code. [Explanation of symbols]

[0108] 102 Printing device 119 Display section 201 Printer Driver 202 UWP Applications 203 Legacy Applications 204 Editing App Launcher 205 Editing Applications 206 Spool File 207 WSDA 208 Configuration Module 209 Printer Extensions (PEX)

Claims

[Claim 1] An editing application program capable of editing intermediate data including drawing data generated by a drawing application, On the computer, obtaining information related to print settings; determining an interface to be used to acquire the intermediate data from among a plurality of interfaces based on the acquired information related to the print settings; acquiring the intermediate data using the determined interface; Execute The program is characterized in that intermediate data output from the editing application is acquired by a printer driver and converted into a print command.

Citation Information

Patent Citations

  • Program and information processor

    JP2015045900A

  • Information processor and program

    JP2017027322A

  • Print setting support apparatus and program

    JP2017068339A

  • Information processing device, information processing method, and program

    JP2018049579A

  • Information processing apparatus, information processing system, information processing method, and program

    JP2018049581A

Cited By

  • Development and implementation of analyzer based control system and algorithm

    US12480060B2