Application that automatically saves paper for every print job

The goal of the application is to save pages while printing by optimizing the print settings automatically

Task

The task is to build a Windows application that installs a printer driver. This driver will become the default printer driver and will use the current default printer driver as a “printing device”. Each time after restart the application should make “Auto Print Saver” the default print driver unless the user requested not to do it in settings

When a print task is executed the driver will show all options of the “printing device”. When the user will execute the print job the driver will do the following:

1. Check number of pages to be printed

2. Try to change margin and resize page based on settings. If there is no saving in number of pages keep original settings and print

3. If there is saving try to enlarge page and margins to the maximum without changing the number of pages to be printed. The tuning will include the following cases:

a. 50% resize only (meaning: 50% of reduction of size done in step 2. Example: if the reduction was to 90% it will be 95% in this step)

b. 50% margin only (meaning: 50% of margin change. Example: if original margin was 1” and reduced margin was 0.2” it will be 0.6” in this step)

c. 50% margin and 50% resize

d. 50% resize and 100% margin

4. Keep statistics about number of pages printed, number of pages saved and show it on the printing page

Settings:

The following settings can be user configured:

1. Lowest page resize: Default: 90%

2. Minimum margins: Left / Right / Top / Bottom Default: 0.2” for each side