1. Field of the Invention
This invention relates to a printing method and related apparatus, and in particular, it relates to a method and apparatus for generating and printing a composed document that include portions of multiple original documents.
2. Description of Related Art
When a user prints pages of a document, it often happens that only portions of the printed pages contain information useful to the user. For example, it may be that on a multiple page document, only some portions of some pages contain useful information. The print function of most conventional programs has the ability of printing selected pages of a document, but does not offer the ability to print portions of pages. Thus, if only small portions of each page contain useful information, paper and toner are wasted on printing areas with useless information. Additionally, the useless information makes it harder for the user to locate the useful information on the page. Users often have to manually highlight the useful portions of using a marker. Also, if the user desires to organize the useful information, such as putting blocks of useful information on the same sheet of paper, he has to manually cut and paste the information into a new document and print the new document. For example, to plan a trip, the user may have flight information, hotel information, car rental information, local maps, etc., in separate documents. Such information is typically distributed in multiple original documents such as web pages, emails, etc., and each document typically contains other information that the user does not need. The user will have to either print all of the documents, or cut and paste the multiple pieces of useful information into a new document if he desires to have all useful information printed onto one piece of paper. This is wasteful and inconvenient.
Accordingly, the present invention is directed to a method and related apparatus that substantially obviate one or more of the problems due to limitations and disadvantages of the related art.
An object of the present invention is to provide a printing method and related apparatus that allow a user to conveniently organize and print information.
Additional features and advantages of the invention will be set forth in the descriptions that follow and in part will be apparent from the description, or may be learned by practice of the invention. The objectives and other advantages of the invention will be realized and attained by the structure particularly pointed out in the written description and claims thereof as well as the appended drawings.
To achieve these and/or other objects, as embodied and broadly described, the present invention provides a printing method which includes: (a) a user opening a first original document using an application program and activating a print function of the application program; (b) the user selecting a composition printer as a destination printing device; (c) a printer driver of the composition printer displaying one or more images representing the first original document; (d) the user selecting one or more blocks of the images to be included in a composed document; (e) the printer driver arranging the blocks of images into one or more pages to generate the composed document; and (f) the printer driver submitting the composed document to a printer for printing. In the step (e) the arrangement of the blocks is preferably carried out automatically. In this instance, the arrangement of the blocks can be adjusted by user per user's request.
In another aspect, the present invention provides a printing method which includes: (a) receiving a first user input for generating a composed document based on a first original document; (b) rendering one or more images representing the first original document; (c) displaying the images; (d) receiving a second user input defining one or more blocks of the images to be included in the composed document; (e) arranging the blocks of images into one or more pages to generate a composed document; and (f) submitting the composed document to a printer for printing.
In another aspect, the present invention provides a computer program product that causes a data processing apparatus to perform the above method.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed.
Embodiments of the present invention provide a printing method that allows a user to conveniently compose and print a document that includes multiple portions from multiple original documents. The method may be implemented as a separate printer driver program or as a part of another printer driver program. A graphical user interface (GUI) is implemented to interact with the user in the printing process. The program may be executed by a general purpose computer having a structure familiar to those skilled in the relevant art.
The pages of the document are rendered as images with printable quality (i.e. 300×300 or 600×600 DPI) and displayed on the screen (e.g. in a preview window) (step S23). In one implementation under the Windows operating system, the application program calls the Windows Graphics Device Interface (GDI) functions and the printer driver renders the images based on the GDI functions. Using the displayed image, the user selects portions (blocks) of the pages that he wishes to be included in the composed print job (step S24). GUI tools are provided for the user to navigate through the pages and select blocks of the images. GUI tools may also be provided to allow the user to input annotations about the composed print job or about selected blocks, add highlights, etc. The program stores the user-selected blocks of images (step S25), preferably as lossless compressed images such as PNG or TIFF format files.
Also, for each new composed print job, a job file is created (this may be done after the user creates a new composed print job). Step S25 also includes storing information about the composed print job in the job file. Such information may include filenames for the image files generated from the selected blocks, user added annotations or highlights, etc. The job file can be implemented in any suitable format, such as an XML file.
After processing a print job, the user may instruct the program to finalize the composed print job, or the user may repeat steps S21 to S25 for additional documents he wishes to include in the composed print job. For example, the program may display a dialog box to prompt the user whether he wishes to finalize the composed print job or to add more documents. Alternatively, the user may simply leave the printer driver program, open another original document in an application and activates the print function of that application, and repeats step S21 to S25. The application programs used to open the original documents may be different application programs.
If the user instructs the program to finalize the composed print job (“Y” in step S26), the program automatically arranges all of the blocks of image selected for the composed print job into one or more pages to generate a composed document, renders images of the composed document, and displays the images on the screen (e.g. in a preview window) (step S27). The blocks of image from all documents are arranged together into the one or more pages; in other words, blocks of image from different documents may be arranged on the same page. Preferably, the blocks are arranged by taking into consideration their shapes and sizes so that the space on the pages is efficiently utilized. The arrangement may additionally take into consideration the sequence in which the blocks have been added to the composed print job. Using the preview images, the program allows the user to optionally edit the composed print job (step S28), such as rearranging (moving) the blocks of image on the pages, cropping the blocks, resizing the blocks, adding annotations, adding highlights (e.g. using digital markers to highlight particular areas), etc. Appropriate GUI tools are provided to accomplish these editing operations. After steps S27 and S28, the program updates the job file to store coordinates of the arranged blocks of images and other pertinent information.
After the user is satisfied with the layout of the composed pages, the composed document is printed on a physical printer or saved as a file (step S29). The printed document also includes the annotations and highlights if they have been inputted by the user. To print the document on a physical printer, the program implements a print function similar to the print function of conventional applications. A printer dialog box may be displayed for the user to select a physical printer to print to. The program then prints the composed document to the selected printer. In addition to the blocks of image, the annotations and highlights are also rendered and printed. To save a composed document, the program may save the job file along with the image files for the blocks of images. Alternatively, the program may generate an image file representing the composed document and save it.
As mentioned earlier, a GUI is implemented to interact with the user in the above process. The GUI may take any suitable form, and use any suitable means to allow the user to enter instructions and input values and to manipulate images. Such GUI tools are well known to those skilled in the programming art and will not be described in detail here.
In addition to above described functions, the program can manage multiple composed print jobs simultaneously. A composed print job management window may be displayed to list all existing composed print jobs, and allow the user to add more contents to a composed print job, or edit a composed print job, delete a composed print job, etc. Deleting a composed print job will delete all related files including the job file and image files for the selected image blocks.
The above descriptions use a separate printer driver program as an example. If the composite printing function is implemented as a part of a printer driver for an actual physical printer, step S21 and S29 will be modified and other steps will remain the same. In step S21, instead of selecting the composition printer as the destination device, the printer driver will prompt the user to select either regular printing (i.e. printing the current document to the physical printer) or composition printing. In step S29, instead of prompting the user to select an actual printer, the printer driver program will print the composed document to its own printer.
As another alternative, the printing method described above may also be implemented as a utility program. The utility program invokes appropriate application programs such as work processing program, web browser programs, etc. to open the original documents to be printed and carries out composition printing. Implementation of such a utility program can be accomplished by those skilled in the art based on the description above.
The composition printing method described herein has many advantages. It avoids printing unnecessary content, thereby conserving paper and toner. It makes it easier to organize information on a printed page, and avoids distraction by unwanted contents.
It will be apparent to those skilled in the art that various modification and variations can be made in the printing method and related apparatus of the present invention without departing from the spirit or scope of the invention. Thus, it is intended that the present invention cover modifications and variations that come within the scope of the appended claims and their equivalents.