Patent Description:
A printer is an output device that accepts text and graphic information from a computer and transfers this information to a physical paper. In general, the printer is associated with a printing application that allows the printer to receive the information to be printed from the computer. While printing the information using any printing application, a User Interface (UI) associated with the printer allows users to input or select various print options like printer selection, page selection, page orientation etc..

Further, when the user has to print multiple copies of multiple pages from a document, the print UI provides an option to select pages or a range of pages and the number of copies of the selected pages. However, in the existing print mechanisms, the number of copies entered by the user will be applied for all the pages selected by the user. For example, if the user selects the pages <NUM>-<NUM>, <NUM>, <NUM> and enters the number of copies required as '<NUM>', then <NUM> copies of all the pages <NUM>, <NUM>, <NUM>, <NUM>, <NUM> and <NUM> will be printed. In other words, the existing print mechanisms do not provide an option to print different number of copies of different set of pages in a single print action. For example, the existing print mechanisms do not provide an option to print <NUM> copies of pages <NUM>-<NUM>, <NUM> copies of page <NUM> and <NUM> copies of page <NUM>. Therefore, to achieve this, the user needs to perform three separate print actions. That is, for the above example, the user has to issue following three print commands -<NUM>) print <NUM> copies of pages <NUM>-<NUM>; <NUM>) print <NUM> copies of page <NUM> and <NUM>) print <NUM> copies of page <NUM>. Thus, the existing print mechanisms consume more time and resources for printing variable copies of multiple pages. This poses a serious limitation when the number of pages to be printed is large. Therefore, it would be advantageous to have a print mechanism that allows users to print different number of copies of different pages in a single print action.

The information disclosed in this background of the disclosure section is only for enhancement of understanding of the general background of the invention and should not be taken as an acknowledgement or any form of suggestion that this information forms the prior art already known to a person skilled in the art.

Document <CIT> discloses a method and user interface for printing variable copies of a plurality of pages in a document.

Disclosed herein is a method according to claim <NUM> for printing variable copies of a plurality of pages in a document.

Further, the present disclosure relates to a printer driver unit according to claim <NUM> for printing variable copies of a plurality of pages in a document.

The accompanying drawings, which are incorporated in and constitute a part of this disclosure, illustrate exemplary embodiments and, together with the description, explain the disclosed principles. The same numbers are used throughout the figures to reference like features and components. Some embodiments of system and/or methods in accordance with embodiments of the present subject matter are now described, by way of example only, and regarding the accompanying figures, in which:.

It should be appreciated by those skilled in the art that any block diagrams herein represent conceptual views of illustrative systems embodying the principles of the present subject matter. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudo code, and the like represent various processes which may be substantially represented in computer readable medium and executed by a computer or processor, whether such computer or processor is explicitly shown.

While the disclosure is susceptible to various modifications and alternative forms, specific embodiment thereof has been shown by way of example in the drawings and will be described in detail below. It should be understood, however that it is not intended to limit the disclosure to the specific forms disclosed, but on the contrary, the disclosure is to cover all modifications, and alternative falling within the scope of the disclosure.

The terms "comprises", "comprising", "includes", or any other variations thereof, are intended to cover a non-exclusive inclusion, such that a setup, device, or method that comprises a list of components or steps does not include only those components or steps but may include other components or steps not expressly listed or inherent to such setup or device or method. In other words, one or more elements in a system or apparatus proceeded by "comprises. a" does not, without more constraints, preclude the existence of other elements or additional elements in the system or method.

The present disclosure relates to a method and a printer driver unit for printing variable copies of a plurality of pages in a document. In an embodiment, the method of present disclosure provides an option for the users to input different number of copies of different pages for printing. That is, according to the present disclosure, the user is allowed to input a 'string' that specifies pages and corresponding number of copies to be printed. For example, to print three copies of pages <NUM>-<NUM>, <NUM> copies of page <NUM> and <NUM> copies of page <NUM>, the user shall input the string - <NUM>-<NUM>*<NUM>, <NUM>*<NUM>, <NUM>*<NUM>.

Thus, the present disclosure allows the user to get the desired number of copies of each page in a single print action, without the need to issue three print commands separately.

In the following detailed description of the embodiments of the disclosure, reference is made to the accompanying drawings that form a part hereof, and in which are shown by way of illustration specific embodiments in which the disclosure may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the disclosure, and it is to be understood that other embodiments may be utilized and that changes may be made without departing from the scope of the present disclosure. The following description is, therefore, not to be taken in a limiting sense.

<FIG> shows an exemplary environment <NUM> for printing variable copies of a plurality of pages of a document in accordance with some embodiments of the present disclosure.

In an embodiment, the environment <NUM> may include, without limiting to, a user <NUM>, a printer driver unit <NUM> and a Multi-Function Printer (MFP) <NUM>. In an embodiment, the user <NUM> may be an operator of the MFP <NUM>. In an embodiment, the printer driver unit <NUM> may be a computing unit configured with a printer driver application, which is capable of scanning through a document and converting content/data to be printed into a format that is understandable by the MFP <NUM>. In an implementation, the printer driver unit <NUM> may be a standalone computing unit that may be connected to the MFP <NUM> as an external plugin. Alternatively, the printer driver unit <NUM> may be configured within the MFP <NUM>. In an implementation, the printer driver unit <NUM> may be associated with a User Interface (UI) for receiving a user input <NUM> from the user <NUM>. As an example, the UI may include, without limiting to, a display screen, a touchscreen, a touchpad, a keypad and the like. In an embodiment, when the printer driver unit <NUM> is configured within the MFP <NUM>, the printer driver unit <NUM> may use the UI of the MFP <NUM> for receiving the user input <NUM> from the user <NUM>.

In an embodiment, the user input <NUM> may include a string of numerals that indicates the plurality of pages to be printed from a document and the number of copies that each of the plurality of pages need to be printed.

In an embodiment, the MFP <NUM> may be a machine designed to perform multiple functionalities including, without limiting to, scanning a document, photocopying a document, printing a document and the like. For various embodiments of the present disclosure, the print functionality of the MFP <NUM> may be considered.

In an embodiment, after receiving the user input <NUM> from the user <NUM>, the printer driver unit <NUM> processes and/or parse the user input <NUM> to identify the pages to be printed and the number of copies that each of the pages need to be printed. For example, if the user <NUM> enters a user input <NUM> such as "<NUM>*<NUM>, <NUM>-<NUM>*<NUM>", then the printer driver unit <NUM> may process the user input <NUM> and identify that the user <NUM> has selected pages <NUM> and <NUM>-<NUM> for printing. Additionally, the printer driver unit <NUM> may identify that the user <NUM> intends to print <NUM> copies of page <NUM> and <NUM> copies of page <NUM>-<NUM>.

In an embodiment, after completely parsing the user input <NUM>, the printer driver unit <NUM> may pass the parsed information to the MFP <NUM>. Subsequently, the MFP <NUM> may print the required number of copies of selected pages onto physical papers (indicated as printed pages <NUM>). Various processes involved in parsing the user input <NUM> and printing the variable copies of the selected pages are explained with reference to <FIG> and <FIG> in the following paragraphs.

<FIG> shows an exemplary architecture of various components involved in a printing process in accordance with some embodiments of the present disclosure.

In an embodiment, as shown in <FIG>, the user <NUM> may use a printer application <NUM> for initiating printing of a document. The printer application <NUM> may be a utility that allows the user <NUM> to perform actions such as, without limiting to, submitting a document for printing, selecting a printer for printing the document etc. In an implementation, the printer application <NUM> may be installed on an external computing system used by the user <NUM>, using which the user <NUM> may select the MFP <NUM> for printing the required pages of the document.

In an embodiment, after receiving above information from the user <NUM>, the printer application <NUM> may invoke a Graphics Device Interface (GDI) <NUM>. The GDI <NUM> may be an Application Programming Interface (API), as well as a core operating system associated with the MFP <NUM>. The GDI <NUM> may be responsible for representing graphical objects/contents from the document to be printed and transmit this information to a printing unit <NUM> of the MFP <NUM>.

In an implementation, the GDI <NUM> is operatively interfaced with the printer driver unit <NUM>.

In an embodiment, after the user <NUM> initiates the printing through the printer application <NUM>, the printer driver unit <NUM> may prompt the user <NUM> to enter the user input <NUM> through a Driver User Interface (Driver UI) <NUM> associated with the printer driver unit <NUM>. At this stage, the user <NUM> may enter the user input <NUM> for selecting a plurality of pages to be printed from the document, along with an indication of number of copies that each of the plurality of pages need to be printed.

Subsequently, the printer driver unit <NUM> parses the user input <NUM> and transmits the information related to the pages selected and the number of copies to the GDI <NUM>.

After identifying the pages to be printed and number of copies of each page to be printed, the GDI <NUM> may pass the content to be printed to a client side print spooler <NUM>. The print spooler <NUM> may copy the content from the GDI <NUM> and pass it on to the printing unit <NUM>. Thereafter, the printing unit <NUM> may print the content onto the physical papers according to the pages and the number of copies of each page selected by the user <NUM>.

In an embodiment, the printer driver unit <NUM> may process the user input <NUM> and pass the selected pages for printing using one of the following two approaches:.

According to this approach, the printer driver unit <NUM> may be updated such that, the driver UI <NUM> provides an option to the user <NUM> to enter the page selection, for example, as shown in <FIG>. Thereafter, the printer driver unit <NUM> may parse the input string to identify the pages to be print and the number of copies of each page. Here, a predetermined constraint would be that the user <NUM> submits 'all pages' of the document for printing in the printer application <NUM>. Accordingly, for each page selected by the user <NUM>, the printer driver unit <NUM> shall capture the content of the selected page and store it in a temporary file <NUM>. Contents of all the other pages, not selected by the user <NUM>, may be skipped. Once the contents of all the selected pages are copied to the temporary file <NUM>, the printer driver unit <NUM> may read each page's content from the temporary file <NUM> and send it to the printing unit <NUM> (through the print spooler <NUM>) as many times as selected by the user <NUM>. That is, if the user <NUM> needs 'three' copies of a particular page, then the printer driver unit <NUM> may send the content of that page to the printing unit <NUM> 'three' times.

According to this approach corresponding to the claimed invention, certain changes may be made in the printer driver unit <NUM> and as well as the printing unit <NUM> (or the MFP <NUM>). In the existing scenario, the PJL command corresponding to selection of number of copies applies to all the pages in the document. Therefore, a new PJL command format may be identified, which helps in selecting different copies of different pages for printing. Also, the printing unit <NUM> or the MFP <NUM> may be modified to understand the new PJL command. Accordingly, in this scenario, instead of sending the contents multiple times, the printer driver unit <NUM> may directly send the new PJL command, indicating the selected pages and the number copies of each selected page, to the printing unit <NUM>. Thereafter, the printing unit <NUM> may interpret the PJL command issued by the printer driver unit <NUM> and print the specified number of copies of each page selected by the user <NUM>.

In an embodiment, a predetermined condition for both of these approaches is that the printer application <NUM> needs to send the whole document (i.e., all the pages of the document) to the GDI <NUM>. Since the page selections done by the user <NUM> in the UI of the printer application <NUM> are not communicated to the printer driver unit <NUM>, the user <NUM> needs to select "all pages' in the printer application <NUM> UI, so that the content of the entire document could be fetched by the printer driver unit <NUM>, for subsequently rendering the content as required by the user <NUM>.

<FIG> shows a detailed block diagram of a printer driver unit <NUM> in accordance with some embodiments of the present disclosure.

In some implementations, the printer driver unit <NUM> includes a processor <NUM>, a memory <NUM> and a Driver User Interface (UI) <NUM>. In an embodiment, the processor <NUM> may be configured to perform one or more functions of the printer driver unit <NUM> for printing variable copies of a plurality of pages in a document, using the data <NUM> and the one or more modules <NUM> associated with the printer driver unit <NUM>. The memory <NUM> is communicatively coupled to the processor <NUM> and may store the data <NUM> and the one or more modules <NUM>. The driver UI <NUM> may be used for receiving a user input <NUM> from the user <NUM>.

In an embodiment, the data <NUM> stored in the memory <NUM> may include, without limitation, the user input <NUM> received from the user <NUM>, a temporary file <NUM> and other data <NUM>. In some implementations, the data <NUM> may be stored within the memory <NUM> in the form of various data structures. Additionally, the data <NUM> may be organized using data models, such as relational or hierarchical data models. The other data <NUM> may include various temporary data and files generated by the one or more modules <NUM> while performing various functions of the printer driver unit <NUM>. As an example, the other data <NUM> may include, without limitation, temporarily stored user input <NUM> and buffer information generated while printing the document.

In an embodiment, the user input <NUM> may be a numeric string entered by the user <NUM>. The user input <NUM> indicates the pages selected by the user <NUM> for printing and the number of copies of each selected page. The user input <NUM> may be received through a driver UI <NUM> associated with the printer driver unit <NUM>.

In an embodiment, the temporary file <NUM> may be used for temporarily storing contents/data of the pages selected by the user <NUM> for printing. The temporary file <NUM> may be managed by the printer driver unit <NUM>, wherein the printer driver unit <NUM> uses the temporary file <NUM> as a buffer memory to store the contents of the selected pages before passing it to the print spooler <NUM> or the printing unit <NUM>.

In an embodiment, the data <NUM> may be processed by the one or more modules <NUM> of the printer driver unit <NUM>. In some implementations, the one or more modules <NUM> may be a hardware unit communicatively coupled to the processor <NUM> for performing one or more functions of the printer driver unit <NUM>. In an implementation, the one or more modules <NUM> may include, without limiting to, a receiving module <NUM>, an input parser <NUM>, a page retrieval module <NUM> and other modules <NUM>.

As used herein, the term module may refer to an Application Specific Integrated Circuit (ASIC), an electronic circuit, a hardware processor (shared, dedicated, or group) and memory that execute one or more software or firmware programs, a combinational logic circuit, and/or other suitable components that provide the described functionality. In an implementation, each of the one or more modules <NUM> may be configured as stand-alone hardware computing units. In an embodiment, the other modules <NUM> may be used to perform various miscellaneous functionalities of the printer driver unit <NUM>. It will be appreciated that such one or more modules <NUM> may be represented as a single module or a combination of different modules.

In an embodiment, the receiving module <NUM> may be configured for receiving the user input <NUM> from the user <NUM> through the driver UI <NUM> associated with the printer driver unit <NUM>. In an embodiment, the input parser <NUM> may be configured for parsing/processing the user input <NUM> received from the user <NUM> and identify the pages to be printer and number of copies of each page to be printed. The page retrieval module <NUM> may be configured for retrieving the content/data of each of the pages selected for printing, from a digital document which is submitted by the user <NUM>.

<FIG> provide exemplary illustration of a User Interface (UI) used for receiving user input <NUM> in accordance with some embodiments of the present disclosure.

<FIG> shows an exemplary UI provided to the user <NUM>, using which the user <NUM> may enter the user input <NUM> to the printer driver unit <NUM>. As shown in the UI, the user input <NUM> may be a string of numerals corresponding to pages of a document to be printed. For example, if a document comprises <NUM> pages and the user <NUM> intends to print three copies of page <NUM> and two copies of pages <NUM>-<NUM> for printing, then the user <NUM> may enter the string "<NUM>*<NUM>; <NUM>-<NUM>*<NUM>" on the text field provided in the UI. In an embodiment, each page and the number of copies of each page may be separated by operators such as, without limitation, ',', ';' and the like, as per preferences of the user <NUM>.

In an embodiment, after entering the user input <NUM>, if the user <NUM> intends to modify the already entered user input <NUM>, "CHANGE SELECTION" option may be chosen on the UI. Otherwise, the "PRINT" option may be used to send the user input <NUM> to the parser driver unit for further processing.

<FIG> illustrate exemplary variations in the user input <NUM> entered by the user <NUM>. As an example, when the user <NUM> intends to print only a single copy of all the selected pages, then the user <NUM> may simply enter the page numbers to be selected for printing as shown in <FIG>. That is, it may not be necessary to indicate the number of copies to be printed, when only a single copy of all the pages is to be printed. Similarly, when a single copy of all <NUM> pages of the document needs to be printed, the user <NUM> may simply enter the user input <NUM> as '<NUM>-<NUM>', as shown in <FIG>. Thus, the proposed method allows the user <NUM> to print variable copies of a plurality of pages in an easy and convenient manner.

<FIG> shows a flowchart illustrating a method of printing variable copies of a plurality of pages of a document in accordance with some embodiments of the present disclosure.

As illustrated in <FIG>, the method <NUM> may include one or more blocks illustrating a method for printing variable copies of a plurality of pages from a document using a printer driver unit <NUM> illustrated in <FIG>. The method <NUM> may be described in the general context of computer executable instructions. Generally, computer executable instructions can include routines, programs, objects, components, data structures, procedures, modules, and functions, which perform specific functions or implement specific abstract data types.

The order in which the method <NUM> is described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method. Additionally, individual blocks may be deleted from the methods without departing from the scope of the subject matter described herein. Furthermore, the method can be implemented in any suitable hardware, software, firmware, or combination thereof.

At block <NUM>, the method <NUM> includes receiving, by the printer driver unit <NUM>, a user input <NUM> from a user <NUM> of a printer or a Multi-Function Printer (MFP) <NUM> associated with the printer driver unit <NUM>. In an embodiment, the user input <NUM> may indicate a plurality of pages to be printed from the document and a number of copies that each of the plurality of pages to be printed. In an implementation, the user input <NUM> may be received through a driver UI <NUM> associated with the printer driver unit <NUM>.

At block <NUM>, the method <NUM> includes parsing, by the printer driver unit <NUM>, the user input <NUM> to determine the plurality of pages to be printed and the number of copies each of the plurality of pages to be printed.

At block <NUM>, the method <NUM> includes retrieving, by the printer driver unit <NUM>, content of each of the plurality of pages determined from the user input <NUM> from a digital file and/or a storage of an external computer connected to the printer driver unit <NUM>. After retrieval, the content of each of the plurality of pages may be temporarily stored in a memory of the printer driver unit <NUM>.

At block <NUM>, the method <NUM> includes printing, by the printer driver unit <NUM>, the determined number of copies of the retrieved content. In an embodiment, printing the required number of copies may comprise transmitting, for a number of times equivalent to the determined number of copies, the stored content into a spooler associated with the printer driver unit <NUM> for printing.

<FIG> illustrates a block diagram of an exemplary computer system <NUM> for implementing embodiments consistent with the present disclosure. In an embodiment, the computer system <NUM> may be the printer driver unit <NUM> illustrated in <FIG>, which may be used for printing variable copies of a plurality of pages from a document. In an alternative embodiment, the computer system may be a Multi-Function Printer (MFP) <NUM> configured with the printer driver unit <NUM>. The computer system <NUM> may include a central processing unit ("CPU" or "processor") <NUM>. The processor <NUM> may comprise at least one data processor for executing program components for executing user- or system-generated business processes. A user <NUM> may include any person, application or tool that directly or indirectly operates the computer system <NUM>. The processor <NUM> may include specialized processing units such as integrated system (bus) controllers, memory management control units, floating point units, graphics processing units, digital signal processing units, etc..

The processor <NUM> may be disposed in communication with one or more Input/Output (I/O) devices (<NUM> and <NUM>) via I/O interface <NUM>. The I/O interface <NUM> may employ communication protocols/methods such as, without limitation, audio, analog, digital, stereo, IEEE®-<NUM>, serial bus, Universal Serial Bus (USB), infrared, PS/<NUM>, BNC, coaxial, component, composite, Digital Visual Interface (DVI), high-definition multimedia interface (HDMI), Radio Frequency (RF) antennas, S-Video, Video Graphics Array (VGA), IEEE® <NUM>. n /b/g/n/x, Bluetooth, cellular (e.g., Code-Division Multiple Access (CDMA), High-Speed Packet Access (HSPA+), Global System For Mobile Communications (GSM), Long-Term Evolution (LTE) or the like), etc. Using the I/O interface <NUM>, the computer system <NUM> may communicate with one or more I/O devices <NUM> and <NUM>.

In some embodiments, the processor <NUM> may be disposed in communication with a communication network <NUM> via a network interface <NUM>. The network interface <NUM> may communicate with the communication network <NUM>. The network interface <NUM> may employ connection protocols including, without limitation, direct connect, Ethernet (e.g., twisted pair <NUM>/<NUM>/<NUM> Base T), Transmission Control Protocol/Internet Protocol (TCP/IP), token ring, IEEE® <NUM>. 11a/b/g/n/x, etc. Using the network interface <NUM> and the communication network <NUM>, the computer system <NUM> may connect with the MFP <NUM> and/or any other computing device associated with the user <NUM> for receiving the user input <NUM> and/or for transmitting the content of pages selected for printing.

In an implementation, the communication network <NUM> may be implemented as one of the several types of networks, such as intranet or Local Area Network (LAN) and such within the organization. The communication network <NUM> may either be a dedicated network or a shared network, which represents an association of several types of networks that use a variety of protocols, for example, Hypertext Transfer Protocol (HTTP), Transmission Control Protocol/Internet Protocol (TCP/IP), Wireless Application Protocol (WAP), etc., to communicate with each other. Further, the communication network <NUM> may include a variety of network devices, including routers, bridges, servers, computing devices, storage devices, etc..

In some embodiments, the processor <NUM> may be disposed in communication with a memory <NUM> (e.g., RAM <NUM>, ROM <NUM>, etc. as shown in <FIG>) via a storage interface <NUM>. The storage interface <NUM> may connect to memory <NUM> including, without limitation, memory drives, removable disc drives, etc., employing connection protocols such as Serial Advanced Technology Attachment (SATA), Integrated Drive Electronics (IDE), IEEE-<NUM>, Universal Serial Bus (USB), fiber channel, Small Computer Systems Interface (SCSI), etc. The memory drives may further include a drum, magnetic disc drive, magneto-optical drive, optical drive, Redundant Array of Independent Discs (RAID), solid-state memory devices, solid-state drives, etc..

The memory <NUM> may store a collection of program or database components, including, without limitation, user/application interface <NUM>, an operating system <NUM>, a web browser <NUM>, and the like. In some embodiments, computer system <NUM> may store user/application data <NUM>, such as the data, variables, records, etc. as described in this invention. Such databases may be implemented as fault-tolerant, relational, scalable, secure databases such as Oracle® or Sybase®.

The operating system <NUM> may facilitate resource management and operation of the computer system <NUM>. Examples of operating systems include, without limitation, APPLE® MACINTOSH® OS X®, UNIX®, UNIX-like system distributions (E. , BERKELEY SOFTWARE DISTRIBUTION® (BSD), FREEBSD®, NETBSD®, OPENBSD, etc.), LINUX® DISTRIBUTIONS (E. , RED HAT®, UBUNTU®, KUBUNTU®, etc.), IBM® OS/<NUM>®, MICROSOFT® WINDOWS® (XP®, VISTA®/<NUM>/<NUM>, <NUM> etc.), APPLE® IOS®, GOOGLE ™ ANDROID ™, BLACKBERRY® OS, or the like.

The user interface <NUM> may facilitate display, execution, interaction, manipulation, or operation of program components through textual or graphical facilities. For example, the user interface <NUM> may provide computer interaction interface elements on a display system operatively connected to the computer system <NUM>, such as cursors, icons, check boxes, menus, scrollers, windows, widgets, and the like. Further, Graphical User Interfaces (GUIs) may be employed, including, without limitation, APPLE® MACINTOSH® operating systems' Aqua®, IBM® OS/<NUM>®, MICROSOFT® WINDOWS® (e.g., Aero, Metro, etc.), web interface libraries (e.g., ActiveX®, JAVA®, JAVASCRIPT®, AJAX, HTML, ADOBE® FLASH®, etc.), or the like.

The web browser <NUM> may be a hypertext viewing application. Secure web browsing may be provided using Secure Hypertext Transport Protocol (HTTPS), Secure Sockets Layer (SSL), Transport Layer Security (TLS), and the like. The web browsers <NUM> may utilize facilities such as AJAX, DHTML, ADOBE® FLASH®, JAVASCRIPT®, JAVA®, Application Programming Interfaces (APIs), and the like. Further, the computer system <NUM> may implement a mail server stored program component. The mail server may utilize facilities such as ASP, ACTIVEX®, ANSI® C++/C#, MICROSOFT®,. NET, CGI SCRIPTS, JAVA®, JAVASCRIPT®, PERL®, PHP, PYTHON®, WEBOBJECTS®, etc. The mail server may utilize communication protocols such as Internet Message Access Protocol (IMAP), Messaging Application Programming Interface (MAPI), MICROSOFT® exchange, Post Office Protocol (POP), Simple Mail Transfer Protocol (SMTP), or the like. In some embodiments, the computer system <NUM> may implement a mail client stored program component. The mail client may be a mail viewing application, such as APPLE® MAIL, MICROSOFT® ENTOURAGE®, MICROSOFT® OUTLOOK®, MOZILLA® THUNDERBIRD®, and the like.

Furthermore, one or more computer-readable storage media may be utilized in implementing embodiments consistent with the present invention. The term "computer-readable medium" should be understood to include tangible items and exclude carrier waves and transient signals, i.e., non-transitory. Examples include Random Access Memory (RAM), Read-Only Memory (ROM), volatile memory, nonvolatile memory, hard drives, Compact Disc (CD) ROMs, Digital Video Disc (DVDs), flash drives, disks, and any other known physical storage media.

In an embodiment, the present disclosure provides a method and/or mechanism that allows users to print different number of copies of a plurality of selected pages on a 'single' print action.

In an embodiment, by allowing printing of variable copies of the pages in a single 'print' action, the present disclosure ensures that the users need not issue multiple/repetitive print commands. This, in turn, helps in enhancing speed of printing. Also, since the number of print commands is reduced, the present disclosure ensures optimal usage of resources (such a printer time, electricity etc.).

In an embodiment, the present disclosure enhances overall user experience with printing, since the users are allowed to customize the number of copies that the multiple pages are required to be printed.

In light of the technical advancements provided by the disclosed method and the printer driver unit, the claimed steps, as discussed above, are not routine, conventional, or well-known aspects in the art, as the claimed steps provide the aforesaid solutions to the technical problems existing in the conventional technologies. Further, the claimed steps clearly bring an improvement in the functioning of the MFPs, printers and/or other related devices, as the claimed steps provide a technical solution to a technical problem.

The terms "an embodiment", "embodiment", "embodiments", "the embodiment", "the embodiments", "one or more embodiments", "some embodiments", and "one embodiment" mean "one or more (but not all) embodiments of the invention(s)" unless expressly specified otherwise.

The terms "including", "comprising", "having" and variations thereof mean "including but not limited to", unless expressly specified otherwise.

The enumerated listing of items does not imply that any or all the items are mutually exclusive, unless expressly specified otherwise. The terms "a", "an" and "the" mean "one or more", unless expressly specified otherwise.

A description of an embodiment with several components in communication with each other does not imply that all such components are required. On the contrary, a variety of optional components are described to illustrate the wide variety of possible embodiments of the invention.

When a single device or article is described herein, it will be clear that more than one device/article (whether they cooperate) may be used in place of a single device/article. Similarly, where more than one device/article is described herein (whether they cooperate), it will be clear that a single device/article may be used in place of the more than one device/article or a different number of devices/articles may be used instead of the shown number of devices or programs. The functionality and/or features of a device may be alternatively embodied by one or more other devices which are not explicitly described as having such functionality/features. Thus, other embodiments of invention need not include the device itself.

Finally, the language used in the specification has been principally selected for readability and instructional purposes, and it may not have been selected to delineate or circumscribe the inventive subject matter. It is therefore intended that the scope of the invention be limited not by this detailed description, but rather by any claims that issue on an application based here on. Accordingly, the embodiments of the present invention are intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.

While various aspects and embodiments have been disclosed herein, other aspects and embodiments will be apparent to those skilled in the art. The various aspects and embodiments disclosed herein are for purposes of illustration and are not intended to be limiting, with the true scope being indicated by the following claims.

Claim 1:
A method for printing variable copies of a plurality of pages in a document, the method comprising:
receiving, by a printer driver unit (<NUM>), a user input (<NUM>) comprising a number of copies for each of the plurality of pages to be printed wherein the user input is received through a driver user interface (<NUM>) of the printer driver unit ;
parsing, by the printer driver unit, the user input to determine the plurality of pages to be printed and transmitting the information related to the pages selected and the number of copies to a graphics device interface (<NUM>) which is operatively interfaced with the printer driver unit, wherein said graphics device interface is configured to pass content to be printed to a printing unit via a print spooler (<NUM>)
receiving by the graphics device interface (<NUM>) content of all the pages of the document through a printer application,
retrieving, by the printer driver unit, content of each of the plurality of pages determined among the content of all the pages of the document; and
printing, by the printer driver unit, the determined number of copies of the retrieved content,
wherein the printing further comprises:
sending to the printing unit a Printer Job Language (PJL) command indicating the plurality of pages to be printed and the number of copies for each of the plurality of pages to be printed.