views:

101

answers:

1

I got a weird problem. I have a program that (does many things but also) show pdf via axAcroPDF control. In the control, I hide the toolbar because I dont want the user to have access to them, so I made a Print button (the only feature I want them to have access).

Now, I went throu the hell to find how to change the default printer because Adobe thought it would be smart to not allow to pass the printer path in their printAll() function, go figure.

There is 2 kind of paper, one cheap and one very expensive, so depending of what type of document, it will print on one printer else the other (and must not screw up else it will be expensive).

So here it goes, PrintA is the default printer for everything and PrintB is the expensive paper printer.

If I print with PrintB, my program keep in memory the current default printer, switch the default printer to PrintB, print the document, then switchback to PrintA. Problem is, after that if I try to print a normal document, it will print with PrintB (even if PrintA is the default printer).

The opposite is also true. If I print a normal document with PrintA first, after that, it will still use PrintA to print special documment.

This will do it until I close the program. So I thought at first it was my program, but I debugged it and everything was fine. I even test with printWithDialog() and first time it pass throu it, it will pop the dialog, but subsequent times it pass throu, it will do nothing :O

So I am totally lost on how to fix this and I feel I will need to give access to the toolbar and have them set the printer and amount of prints themselves (which is a very very bad idea, you have no idea how dumb they are).

A: 

We finally figured that all our problems would be better if we didnt had to deal with Adobe. That is exactly what we did. We installed Foxit and all our printer drama went away!

Wildhorn