404 Tech Support

Windows and non-letter sized printers as default = pain

At work I stumbled my way into a problematic situation that was as unique as it was complicated. Given its uniqueness, I couldn’t find any solutions online or even much discussion about this problem before. Hopefully this post will save anybody from being in my exact situation because there is now at least one location on the web discussing this problem of having a non-letter sized printer as your default printer and then trying to print to a letter sized (standard) printer.

Here’s the layout:
Computer with Windows XP (Server 2003 was also tried)
Receipt printer networked, shared from another computer, or connected directly (USB or LPT) – Set as default printer*
Laser printer (Letter, legal, standard page sizes, etc.) also connected in any fashion

*The receipt printer must be set default for the Voyager Circulation module. Voyager prints to the default printer without allowing individual specification. One could change the default printer, close and re-open Voyager to get it to print to that printer. In fact, printing to the receipt printer is such the default behavior I have set up a script at startup to establish the receipt printer as the default. This insures that at login everything is ready to go whether or not somebody changed the default printer intentionally or a Microsoft Update stole the default printer AGAIN for the Microsoft Live printer. In this case, the receipt printers are Epson TM-88III or TM-88IV printers.

The problem:
Given the above layout, when one tries to print to the laser printer the document will print from applications like IE and Word, but it may require user intervention (printer believes it is looking for a different paper size) and the print job will come out on an 8×11 sheet of paper as a 3×11 print job. This is often illegible, not what you printed, and worst of all, a waste of paper, toner, and time.

One could set the default printer to the laser printer, log out, print the document from word or the webpage from IE/Firefox/Opera (all 3 have the problem by default). Reset the default printer to the receipt printer, then close and re-open Voyager. That’s a lot of steps for a task that could be simply accomplished by stepping over to a non-circulation terminal, not to mention the script that sets the default printer at log in would foil your plan.

Why it seems to happen:
It seems that the majority of applications grab their printer settings at login based on the default printer, in this case the receipt printer and thus the 3″ by X” paper size. This is all speculation as who gets the blame, I’m not sure if it’s a Windows thing, the Epson drivers, a programming practice, or maybe even a printing library, as I don’t have access to any code or the know-how to analyze it and see where the problem lies. From enough print jobs and far too many hours investigating this problem, it seemed there was enough blame to go around.

My solution:
A previous solution that was in place involved a memory-hungry script that detected print jobs, the source application, and then would hopefully change the default printer. My solution, by no means, cured the problem. It did, however, make it a manageable problem. It might require some adjustment (switch from IE to Firefox) and new programs, but it will allow you to:
A) Print from Firefox normally
B) Print screenshots normally
C) Continue to print from Voyager to the receipt printers

With only one instance of Firefox open, go to File, Print…
In the Print dialog box, choose the laser printer that you wish to be the destination for browser printouts and hit Ok. (You seem to have to print something as it’s the only way to confirm in this window, choose a webpage with little to print like Google’s homepage, print just one page, or print a selection.) It will, as a result of the problem in discussion, come out as receipt-sized print job.
In Firefox’s address bar, type: ‘about:config’
In the filter box, type ‘print’
print.print_printer should have a value matching the name of your desired printer; If not, start over.
You can double-click this preference to set the value, but there are many other keys that get created with this information, so that is why I changed the printer and printed something in a previous step.
I have toggled the print.save_print_settings from ‘true’ to ‘false’ to ‘true’ again, just to make sure it picks up the setting change.

Any future prints from Firefox under this particular Windows login and Firefox profile now pick up the laser printer for its settings and thus prints normally.

We were previously using an older, freeware version of the application PrintKey. This, in all its grandiose, basically combined the steps of pressing print screen, opening up mspaint, and pasting in the image. There were a few other functions, but nothing worth writing home about. I tried a newer version of PrintKey to see if it could be used to get around the problem of receipt-sized screenshots, but it persisted. I hunted down just about every freeware print screen application that I could find and tested them all as possible solutions. Fortunately, my search was not in vain. I managed to find one cool application that solved the problem and was definitely a worth-while upgrade. If anybody asks for a screenshot application these days, I freely recommend HardCopy as my program of choice. Not only did it solve my dilemma here but it also offers a ton of customization, settings, and macro tie-ins. It’s also to get it to do what you want by finding its registry settings under HKCUSoftwaresw4youhardcopySettings or similar path under HKLM. You can import/export these keys within the login script if you want to carry over the settings from one user/machine to another.

Back to addressing the solution… Basically you can install the freeware HardCopy and then set up the functions of certain buttons like PrintScreen and Alt+PrintScreen (and many more) to do different things like printing directly to a specific printer without even opening the window. This grabs the proper settings for the print job, can tack on user & timestamp information, and specifies landscape/portrait orientation.

Basically, it seems that is as close as I can get tasks back to normal with a receipt printer as the default. IE and Opera were tested as well as Firefox, but only the latter came through and allowed for (understandable) customization of the printer settings. This solution covered most printing tasks required from the circulation terminals with minimal increase to non-user friendliness (use Firefox!) and, primarily, saved the day.

Final thoughts:
The only final thoughts to add on the matter are to elaborate on that which I mentioned earlier; If HardCopy can successfully print correctly by just specifying the printer and Firefox can be made to print correctly, it must not be a Windows-caused problem, but a printing library or a practice of using these printing libraries that causes the issue.