Re: setPrintJobProperty problem
- Posted by CChris <christian.cuvier at agri?ulture.g?uv.fr> Oct 29, 2007
- 639 views
Andy Drummond wrote: > > CChris wrote: > > > > Andy Drummond wrote: > > > > > > CChris wrote: > > > > > > > > > > > > Since getPrinterChoice() displays a dialog box where the user might > > > > change > settings,</font></i> > > > > it has to check for these changes and make them effective for the > > > > printer. > That's</font></i> > > > > a fair amount of code indeed. > > > > > > > > > If so, should you add the getDefault Printer() to Win32Lib then I > > > > > assume > it</font></i> > > > > > would set things up exactly the same as getPrinter()+OK does. Then it > > > > > will > > > > > work fine. I can wait; it is not a great pain like the press shift > > > > > once > pain.</font></i> > > > > > > > > > > > > > The code I had posted was meant to be pasted in w32resources.ew, right > > > > after > > > > getPrinterChoice(). It will be in 70.2 anyway, probably with the > > > > enhancements > > > > suggested above. > > > > > > > > > Is it possible to call getPrinter() with an argument which tells the > > > > > routine > > > > > the printer name to get or even just to imitate the press of OK for > > > > > the > > > > > default printer? Something like (DOS days) pushing a keypress onto the > > > > > key > > > > > stack before calling a routine which then gets the keypress & returns > > > > > with > > > > > no user input needed. A thought.... > > > > > > > > I think I'd rather add a selectPrinter(objet printer) procedure. If > > > > printer > > > > is a sequence, it is a printer name string, and that will set designated > > > > printer > > > > as current printer. If name is unknown, fall back on getPrinterChoice(). > > > > How > > > > about that? > > > > > > > > > > CChris, what you suggest is excellent; it would cover all cases beyond > > > maybe > > > having a routine which returns a list of the names of the printers > > > available. > > > Since I only want the default that is not something I'd ask for. Not yet! > > > > > > I am content to wait for your doing this as and when you get around to it; > > > it will be a useful upgrade to my code so I can do a Microsoft Word and > > > just > > > > > > have a button which prints all by itself. Magic. I can use > > > setPrintJobProperty() > > > to do lots now with just a single click to accept the printer choice. > > > > > > > > > > > > > I appreciate your work on Win32Lib enormously - as I do Derek's work > > > > > and > > > > > I guess David Cuny's, who started it. You guys all want medals - or > > > > > money > -</font></i> > > > > > but not being Bill Gates's, you will get users complaining their model > > > > > railway > > > > > won't work right under Win32Lib or their printer keeps running out of > > > > > ink > or</font></i> > > > > > something silly like that. > > > > > > > > > > Tough life, isn't it. You do have many fans, though! > > > > > > > > > > AndyD > > > > > > > May I comment; when I said you guys all want medals etc, I meant DESERVE > > > medals > > > not want as in desire.... no offence meant. > > > > > > > > > > > I expect more complaints about printing for the weeks ahead actually. > > > > The lib had just so many print features that were offered, but didn't > > > > work. > > > > As some start to, there will be more voices to ask for everything to > > > > work right > > > > out of the box, and I cannot test everything because I have one computer > > > > and > > > > two printers only (a laser and AdobePDF). That's why having a good pool > > > > of > testers</font></i> > > > > to catch issues before release would tremendously help. > > > > > > > > CChris > > > > > > Hopefully not too many complaints - just helpful criticism as we try and > > > do > > > our job as testers. But it does sound like complaining to me though it is > > > not meant that way.. > > > > > > AndyD > > > > Replace at line 1272 in w32resources.ew the text for getDefaultPrinter() by: > > }}} <eucode> > > --/topic Printing > > --/func getDefaultPrinter() > > --/desc Like /getPrinter(), but assumes there is a default printer already > > installed > > --/ret (ATOM) DC for default printer > > global function getDefaultPrinter() > > printerDC = w32Func(xCreateDC,{wsp,pname,0,0}) > > setPrinterPointers(1) > > return printerDC > > end function > > </eucode> {{{ > > > > Then, calling setPrintJobProperty() should update everything, but most > > importantly > > the printer itself. Let us know whether this is working better. > > > > CChris > > Line 1212 seems better - 1272 is in the middle of startPage(). I have put in > the new version of getDefaultPrinter() code and I'll try it ASAP. Maybe it is > just the testing version of Win32Lib I have now got. > > AndyD No, but it already has the getDefaultPrinter() in w32resources.ew, so you only need to stick the setPrinterPointers(1) in. Calling setPrintJobProperty() should work then. CChris