I've got a Graphics Tools licensee with a printing problem, and I'm stumped.
The function -- the heart of the GT print-image and print-area functions -- has been working fine in wide distribution since 2002 when the last print-related bug was reported and fixed. Now a user is reporting that his programs can't print on his Kodak 5100 All-in-One. The print job gets stuck in the queue and no paper comes out. I thought it was probably something peculiar with his hardware, OS, or network, but Jules, who also owns a Kodak 5100, was kind enough to run a test program for me. It fails to print on his computer too.
My usual strategy was to install a problem-printer's drivers on a test system, and set it up for "print to file". That way I can talk to the driver without the actual printer being installed. Unfortunately the Kodak All-in-One driver-install program refuses to install anything until it actually detects the printer.
So I sent the customer another test program, which created a text "trace" file. The file shows that the return value of every API function is exactly what it is supposed to be. Every handle/etc value is valid, and GetLastError always returns zero immediately after an API call. Every single line of code is doing exactly what I am asking it to do, but the image is not making it onto paper.
By the way the test program sends text to the printer with TextOut, as well as copying an image to the printer DC. Even if the printer caps were being handled incorrectly, or something like that, it seems like we'd at least get a piece of paper with one line of text. But no, the job just hangs in the queue.
(This may or may not be important: The first problem I ran into was that the runtime system would not let me create a trace file in the root of C. Permission denied. I was able to create it in a folder called C:\tmp2 but not
C:\tmp. Is there something new in Vista that disallows root access? Again, I don't know whether or not this is related to the printer problem, but it makes me wonder whether the printing code is working correctly with Vista, rather than the Kodak printer.)
Does this ring a bell with anybody?
-- Eric Pearson, Perfect Sync, Inc.
The function -- the heart of the GT print-image and print-area functions -- has been working fine in wide distribution since 2002 when the last print-related bug was reported and fixed. Now a user is reporting that his programs can't print on his Kodak 5100 All-in-One. The print job gets stuck in the queue and no paper comes out. I thought it was probably something peculiar with his hardware, OS, or network, but Jules, who also owns a Kodak 5100, was kind enough to run a test program for me. It fails to print on his computer too.
My usual strategy was to install a problem-printer's drivers on a test system, and set it up for "print to file". That way I can talk to the driver without the actual printer being installed. Unfortunately the Kodak All-in-One driver-install program refuses to install anything until it actually detects the printer.
So I sent the customer another test program, which created a text "trace" file. The file shows that the return value of every API function is exactly what it is supposed to be. Every handle/etc value is valid, and GetLastError always returns zero immediately after an API call. Every single line of code is doing exactly what I am asking it to do, but the image is not making it onto paper.
By the way the test program sends text to the printer with TextOut, as well as copying an image to the printer DC. Even if the printer caps were being handled incorrectly, or something like that, it seems like we'd at least get a piece of paper with one line of text. But no, the job just hangs in the queue.
(This may or may not be important: The first problem I ran into was that the runtime system would not let me create a trace file in the root of C. Permission denied. I was able to create it in a folder called C:\tmp2 but not
C:\tmp. Is there something new in Vista that disallows root access? Again, I don't know whether or not this is related to the printer problem, but it makes me wonder whether the printing code is working correctly with Vista, rather than the Kodak printer.)
Does this ring a bell with anybody?
-- Eric Pearson, Perfect Sync, Inc.
Comment