>>>>We are doing a Fox 2.0 DOS to VFP9 conversion. There are more reports than you can shake a stick at. They are written using ?? and ? to send raw data to the printer. I have been able to get this to work with the default printer but need to be able to get the current default printer, set the default to a printer for wide column reports and then set it back to the original default.
>>>>
>>>>Has anyone done this?
>>>>
>>>>Thanks Jeff
>>>
>>>Instead of setting the Windows default printer (which will affect other applications), you might simply SET PRINTER TO NAME ...
>>>
>>>This will change the printer for the VFP application, until you exit the application.
>>
>>The problem is that using ?? and ? will only output to the default printer. I have tried setting printer to name printername, printername and getprinter(). None of these work with ?? and ? unless it is the default printer.
>>
>>thanks, jeff
>
>Hmm, I usually send information with "???". I suggest the following approach:
>
Create a text file - I'll call it "output.txt" in the sample code below - with whatever means. For compatibility with your existing system, this would probably be "?" and "??"; output can be redirected with SET CONSOLE OFF / SET ALTERNATE ON / SET ALTERNATE TO ...
>Use the following commands to send the output to the printer:
>
>>set printer to name...
>lcPrinterCodes
>lcFileInRam = FileToStr("output.txt")
>??? lcPrinterCodes + lcFileInRam
>
I've been trying to avoid printing to file as I then am going to have to create word object and set font, page orientation, etc and then print.
I may come to that but i'm trying to see if I can do a raw print first.
thanks, jeff