Reply

Modify Printer Settings

Hi there.

 

I'm developing an advanced batch printing tool to improve performance when printing drafts. The app reads a bunch of draft files and shows all the sheets, studying paper format, along with some diagnostic information (models and views outdated, missing links, etc...), sorting stuff and so on.

 

The idea is, once all drafts are nicely updated and cleaned, getting all the different "paper formats" among all the sheets, in order to select a different printing setup for each one. As in most engineering offices, each format is printed in a specific machine with different settings. Indeed, different partners can use different settings. The same machine is used for more than one format, most of the time.

 

 

Currently all the work is mostly done, but, to my surprise, I have no clue about how changing printing options in order to print. I mean, I know how to select a printer for DraftPrintUtility.PrintOut() or DraftDocument.PrintOut(), but I have found no way of modifyfing each printer particular settings.

 

I have tried thorugh Windows PrintDialog(), where I can select the printer and get access to its Settings. However, those changes "don't persist" within my app, so all the printing is always done using the default configuration for the selected machine holded by Windows.

 

So, the only way to work is adjusting printer default settings in Windows, print all sheets which use that settings, modify again and repeat the process. I must select the printer in my app and change its settings on Windows, repeating for each different format. The "configure all formats, print and go to coffee" solution I was looking for is not possible. Also, I don't like to have default setting modified in a normal workflow basis.

 

Also, the pssibility of having each printer duplicated for each format is ugly and not too flexible for a crowded office.

 

I can't even modify printer settings as you can when printing a draft from Solidedge, since the changes are always discarded, with no effect on PrintOut(). Where is that info stored????

 

You can't imagine the hours spent surfing the web for info and doing tests, with no success. I can't believe there's a draft API without this being possible, so I'm sure I'm missing something. This can save hundreds of human work per year in any mid-size company...

 

Any clues???

 

Much thanks in advance!