Solved

Trouble Printing from DOS programs in XP Mode

Posted on 2013-06-02
14
2,121 Views
Last Modified: 2013-06-17
Having trouble printing from DOS in a XP MODE virtual machine running within Windows 7 to a USB printer attached to Windows 7. Specifically Canon MX 300 multi-function.

Have spent the last 3 days reading and trying things, but I'm about ready take this computer to a shooting range and see if they let me unload some rounds on it.

Here is what happens:
I initiate a print job from either the edit.exe command in DOS prompt within XP Mode or command line stuff like "copy test.txt LPT1", "copy test.txt > LPT1", "dir > Lpt2". etc. I get no error messages. The commands are accepted but nothing happens. If I am monitoring the printer queue on the Windows 7 machine I see something flash and then disappear. If I enable the option to leave documents in spool after printing, the status for anything I send says "printed", but nothing ever comes out of the printer. Don't understand how it can say printed, but nothing comes out of printer. I would expect some sort of error message, but there is nothing to guide me here. Thanks MS.

i can print from a text file on the desktop in XP Mode and it prints in the Windows 7. Since when I print to LPT1 or LPT2 I see something show up in the queue, I assume the LPT redirection to network printer is working fine.

Could it be that the Canon cannot handle dos generated printer instructions? Am I beating my head against the wall and my printer is the problem all along?

I followed the instructions to a T from the following page, http://blogs.msdn.com/b/7/archive/2010/11/30/enabling-printing-for-dos-applications-within-windows-xp-mode-vm-on-windows-7.aspx, which is great at explaining the steps in a clear way, it just doesn't address any real troubleshooting.

Any suggestions would be appreciated. I am reading snippets here and there about support for PCL languages? How do I know what the Canon supports? What else should I be looking for? I have seen and read many suggestions, but I have been focusing my attention on a share or redirection issue, and now wonder if I should try another printer. Not easy to do, don't want to buy a printer just to test but I need to get this working.
0
Comment
Question by:AdminMonkey
  • 5
  • 3
  • 2
  • +2
14 Comments
 
LVL 30

Expert Comment

by:ded9
ID: 39214669
What is name of the dos application that you are running in XP mode.

Did u try running the dos application in compatibility mode in windows 7.

 Post device manager screenshot for xp and windows 7.

You could use software like printfil to print from dos.

http://www.printfil.com/english.htm





Ded9
0
 

Author Comment

by:AdminMonkey
ID: 39214702
The application the client I want to help is called Netview. It's an old DOS accounting program. It does not run in Windows 7 at all with any sort of compatibility settings.

I also tried using DOSBOX, and then tried DOSBOX megabuild when I realized the original does not have printing support. I also had to install printfil to capture the data sent to lpt 1. But the App runs so increadibly slow in Dosbox that client says they can't use it and they have to go back to their Windows XP. She and her accountant literally have two computers on their desk, with one just dedicated to running and printing from this program.

But having mentioned the application, don't think its relevant because all I am trying to do on my home pc is proof of concept, and I would settle for any sign of it working. I figured testing by printing from the edit.exe command or redirecting stuff to the lpt port is a valid test. I see other people who have these types of issues testing it that way to prove that it works. I think once I figure out what is wrong, it will work from edit.exe or manual redirection or her program.

My printer at home is a your basic Canon multi-function with a USB connection, plugged into Win 7. Too bad Canon does not provide universal drivers. I tried setting it up numerous ways to no avail:
- share in Windows 7, then download XP drivers from Canon site and install it in XP mode and then setup redirect (not sure why instructions say to do that if I am redirecting to network printer anyway)
- Attach it from drop down menu in XP mode, install drivers then, release it back to Win7
- Leave it attached to XP Mode, share it, then redirect LPT1 to the \\xpmodepc\canon
- create generic text printer in Win 7, share it, then attach to that from XP Mode to make sure that windows 7 drivers aren't somehow adding anything extra to the mix.

What really bothers me is the fact that I see it in the spool, and that if I check leave documents in spool after print it says "status: printed". Nothing in any system log or anything.
0
 
LVL 30

Expert Comment

by:ded9
ID: 39214742
One option is to install windows xp  and remove windows 7

or

Use application like prinfil

http://www.printfil.com/english.htm

The ms commands are good option but client might face issues....lets wait for other suggestions.




Ded9
0
 
LVL 82

Expert Comment

by:Dave Baldwin
ID: 39214805
I have found that PCL commands do not make it thru the printers configured with 'net use...'.  Plain text does and that's about all.  This is especially true with GDI printers (most USB printers) that do not even have a text or PCL interface.  If it says it supports PCL3, that is completely misleading because whatever they think that is is not available as a printing interface or driver.
0
 
LVL 7

Expert Comment

by:msifox
ID: 39214885
There's a windows console program 'winprint.exe' that sends a printout stored in a file to a windows printer, using binary mode. So that file can contain PCL if the printer understands that. I'll try to put it on a server somewhere and then post the URL here.
0
 

Author Comment

by:AdminMonkey
ID: 39214903
I suspect something along the lines of what you are saying DaveBaldwin. But I am getting mixed message because other people using DOS programs "seem" to indicate they got it working. It's just when I double-check everything that seems to work in their case, I either already tried it, or it just doesn't help.

MSIFOX how much user input is required to get your program to run? The user/users I have in mind will have pretty close to 0 skill.

I am tempted to drive over to customer's house, pick up her old printer and then bring it home to try it. If it turns out to be the printer, I will junk my current printer, I will never buy a canon product again, and will steer anyone that will listen away from Canon products in the future.
0
 

Author Comment

by:AdminMonkey
ID: 39214906
Please change the extention (so it gets past google spam filters) and send it to me. support@system-network-solutions.com.
0
Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

 
LVL 7

Expert Comment

by:msifox
ID: 39214937
The Canon Pixma seems to be a GDI printer. In this case it doesn't speak PCL, but can only be accessed through windows driver. Printfil mentioned above promises to solve this problem somehow. The program that I mentioned will most likely not work with a GDI printer, because for GDI printers the PC must rasterize the image to be printed, and send it as whole-page bitmap. These printers don't know fonts, so they cannot convert ASCII text to a printout themselves.
0
 
LVL 82

Expert Comment

by:Dave Baldwin
ID: 39214962
It won't do any good to avoid Canon products for this issue because virtually all USB connected printers these days have the same problem.  They are GDI printers and they do Not have a standard interface like PCL or Postscript built into the printer.  The driver on the computer formats the print data like a video stream and sends it to the printer.  

This will include HP, Epson, Canon, Lexmark, and just about any other USB connected inkjet printer you can find.  Also laser printers.  My HP 1000 USB printer is setup the same way.  They are not interested in supporting your old DOS programs because they don't make any money from you running old programs that were paid for many years ago.

For the DOS programs that still make me money, I have DOS 6.22 / Windows 3.11 computers to run them on.  I don't even try to run the programs on newer operating systems and computers because they don't support those programs.  I have one program I paid big bucks for many years ago that can't even run under Windows 3.11.  DOS only.
0
 
LVL 38

Expert Comment

by:Herman D'Hondt
ID: 39215157
msifox is correct: the Canon is a GDI printer and does not understand plain text - they rely on the Windows graphics engine to convert the page into dots on the screen.

The only way to get DOS output to the MX300 is with something like DOSPRN. It takes the DOS output and prints it via the printer's Windows driver. It's a free download and works well.
0
 
LVL 82

Expert Comment

by:Dave Baldwin
ID: 39215269
Except that DOSPRN will not pass PCL commands thru to the printer.  Not that it matters because GDI printer won't understand them anyway, even if the docs say that it implements PCL3.  No one but HP and the other printer manufacturers know what PCL3 is anyway.
0
 
LVL 38

Expert Comment

by:Herman D'Hondt
ID: 39215865
DOSPRN does support PCL, although it probably only supports a limited subset of them (I can't find any list of supported commands, but their What's New page mentions several PCL enhancements in the different versions. No DOS program uses any complex PCL commands anyway, mostly just plain text, with perhaps some font commands.

And, as DOSPRN feeds the PCL commands through the driver, it lets the diver convert them into a printer bitmap, be that PCL3 or some other GDI format.

PS: When we mention PCL we mean PCL5 and PCL6, which are are an entirely different animal from PCL3. Calling it PCL3 is just HP's way of making people think that the printer has a usable language, similar to PCL5 or 6. It doesn't.
0
 

Accepted Solution

by:
AdminMonkey earned 0 total points
ID: 39243355
I resolved my problem.


The issue was that my printer did not understand the printing instructions from the DOS program. In Windows 7, where the shared printer is attached I went to the properties of the Canon, then to the print processor option. There I changed it from RAW to TEXT, and all of a sudden it works.

I also deployed the solution at the customer's house and with her old printer it worked without have to make that change.
0
 

Author Closing Comment

by:AdminMonkey
ID: 39252624
Thanks for helping me realize it was the printer itself misfox.
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

If you have done a reformat of your hard drive and proceeded to do a successful Windows XP installation, you may notice that a choice between two operating systems when you start up the machine. Here is how to get rid of this: Click Start Clic…
If you get continual lockouts after changing your Active Directory password, there are several possible reasons.  Two of the most common are using other devices to access your email and stored passwords in the credential manager of windows.
This Micro Tutorial will give you basic overview of the control panel section on Windows 7. It will depth in Network and Internet, Hardware and Sound, etc. This will be demonstrated using Windows 7 operating system.
This Micro Tutorial will give you a introduction in two parts how to utilize Windows Live Movie Maker to its maximum editing capability. This will be demonstrated using Windows Live Movie Maker on Windows 7 operating system.

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now