Windows 7 prints wrong graphics characters from a DOS database program

Discussion in 'Software' started by mjnc, Aug 3, 2013.

  1. mjnc

    mjnc MajorGeek

    A client using a billing and inventory program that I wrote for him a number of years ago, is having some problems since
    upgrading from Windows XP to Windows 7 Home Premium.

    The main problem now is that when printing his quotes and invoices, Windows is using the wrong character set.
    Instead of getting single and double line boxes and frames, it is printing completely different characters.

    They are all graphics characters above 128 ASCII commonly used for both screen and print in DOS programs.
    There is no problem with screen display of the same characters.

    Isn't there a way to make it use the intended character set when printing?
    I don't have Windows 7, so I can't do any testing on my own equipment.

    Thanks.

    P.S.
    Don't bother with suggestions of 'a different program'.
    This is a custom application that he paid $$$ for and I spent hundreds of hours developing.
     
  2. brownizs

    brownizs MajorGeek

    Not unless you can find a printer that allows IBM Character set, such as a LaserJet. I would suggest moving them into something like QuickBooks, or design the program to run in Access, if you want full use of the printer. BTW, there is no such thing as DOS anymore. DOS died with the end of Win98 & Win NT.
     
  3. pwillener

    pwillener MajorGeek

    If it worked right under Windows XP, it may also work correctly if you run it in XP compatibility mode on Windows 7.

    On the other hand it may be an encoding problem. Can you post a few characters that print incorrectly (the intended characters, and the actual output)?
     
  4. foogoo

    foogoo Major "foogoo" Geek

    Yep, I'd say the printer drivers, going from XP to 7, what is the printer? Is there a generic driver? PCL5, or PCL6??
     
  5. mjnc

    mjnc MajorGeek

    Thanks for the replies!!!

    Good thought, PW.
    Don't know if he ever tried Compatibility Mode.

    chr(218) chr(196) chr(191)

    This is the code that prints the top line of a box. The first and last characters are the left and right corners.
    Code:
    @ row,0  say chr(218) + replicate( chr(196),35) + chr(191)
    I have attached two screenshots to show how it should look and what we get.

    The program has the option to print to a .txt file which can then be loaded by any standard text editor.
    When I load it into my text editor, PSPad, I get the wrong characters, but if the View setting is changed to Show OEM chars,
    then it looks as it should.

    The printer is a HP Deskjet 970CXI

    I don't know what driver is being used. It's difficult to describe the procedure to find that when talking on the phone.
    I suppose it's similar to Windows XP going through Control Panel.

    I'll send him the following link. Maybe that will help.
    How To Find a Driver's Version Number in Windows 7

    The printer is connected through a USB port, but does have the capability to connect through a parallel port.
    Don't know if that would help at all.
     

    Attached Files:

  6. mjnc

    mjnc MajorGeek

    Update:

    This problem was resolved by reconnecting the printer via the parallel port.
     

MajorGeeks.Com Menu

Downloads All In One Tweaks \ Android \ Anti-Malware \ Anti-Virus \ Appearance \ Backup \ Browsers \ CD\DVD\Blu-Ray \ Covert Ops \ Drive Utilities \ Drivers \ Graphics \ Internet Tools \ Multimedia \ Networking \ Office Tools \ PC Games \ System Tools \ Mac/Apple/Ipad Downloads

Other News: Top Downloads \ News (Tech) \ Off Base (Other Websites News) \ Way Off Base (Offbeat Stories and Pics)

Social: Facebook \ YouTube \ Twitter \ Tumblr \ Pintrest \ RSS Feeds