I have a mixed network of a 475 (8.1), 7300 (9.1), G4 PowerBook (10.4), and an XP box. I recently bought a Canon Laser printer for which there are no Mac drivers.
To print to a Windows (XP) printer for which there isn't a Mac driver, a useful method is to install Port Redirection and Ghostscript/Ghostview on the XP box. Then create a virtual printer using the descriptor of a known Printer (e.g. Apple LaserWriter...). The virtual printer will be configured to redirect its output to GSPrint, which will actually send the job to the real printer using the Windows driver(s).
Here are detailed directions, with the additional caveats that the Windows printer name must not contain more than 12 characters, and if the Windows box has a workgroup name (other than workgroup), this must be entered in Directory Access (in Applications » Utilities) on the Mac. Double click on the SMB/CIFS entry.
By creating an LPR virtual printer, which points to the ordinary virtual printer, I also can print from either of the older Macs to the Laser. This works so well I moved an Epson inkjet from the 7300 to the PC -- Windows makes a fine print server.
Upon updating to Leopard, I (like many others) discovered that the printer I had shared on another computer was no longer accessible. In my case, the printer was connected to a beige G3 running Jaguar, but the following hint may also work for printers shared from other versions of Mac OS X, as well as for Linux boxes.
All that command actually does is add the line BrowseProtocols="cups dnssd" to the file /etc/cups/cupsd.conf. By default, the cups protocol (which is used by older versions of OS X, among others) is not enabled in Leopard, and this command re-enables it. If you find that this command still doesn't help, there's an even more drastic solution, as described on this page: instead of enabling cups, simply enable every available browse protocol by typing:
This has some side effects (your internal modem, if you have one, will decide it's actually a fax machine), but it worked for me.
Say you want to use some printers via IPP, but these require authentication with a user account. You could use this hint which was published a few days ago, and install the printer directly using an address like this:
You could also do this in Tiger by holding the Option key while pressing Add. However, there are two fundamental problems with this approach. First, these printers can be used by every user on the machine, so adding printers like this only makes sense on single-user machines. Second, the account data is written to /etc/cups/printers.conf, i.e. this file contains your password in clear text (this file is only readable by administrators, though).
Fortunately, OS X 10.5 actually supports IPP printing with authentication, but Apple somehow managed to obfuscate this feature. Read on to see how to use it.
As you've discovered, Mac OS X 10.5 Leopard does away with the Printer Setup Utility application, which provided an intuitive GUI method for doing two things that the Leopard Print & Fax pane doesn't make apparent:
Resetting the Printing System
Adding printers via the Advanced method (in Tiger, Option-click the More Printers... button)
But these features are still here, just in new spots. To reset the printing system in Leopard, open the Print & Fax pane, then control-click in the Printers sidebar. There it is: Reset printing system. And the advanced method is available in a toolbar button, as detailed in this hint.
To make one of these printers -- Samsung CLP-500, CLP-510; Xerox Phaser 6100 -- work in 10.5, install the August 2007 printer driver [5MB download]. Unfortunately, one library from Tiger that this driver needs went away, so using your Tiger backup disk, do this:
But with Leopard, I just couldn't add any shared SMB printer. No matter what I tried, only Bonjour, IP and AppleTalk printers were available to install, but not my usual Canon PCL.
Maybe you remember in Tiger: when we needed to add another printer in the Advanced tab, we held down the Option key while pressing Add, and the next screen would pop up the "Print to Windows via SMB" option. But no such trick in Leopard, it seemed.
Well, to get the Advanced tab choice, I had to customize the Add Printer toolbar: there you can add a handy Advanced button. Press that, and there you'll find the Tiger functionality hiding!
[robg adds: To state the obvious, to reach this area, you first open the Print & Fax System Preferenes panel, then click the plus sign at the lower left corner of the window.]
I've seen a lot of these hints on the Internet, but most of them didn't work for me. This is how I managed to print to a shared Windows printer.
We'll start by opening System Preferences, where we chose the Print & Fax preference pane. There you should see a list with all the printers you've currently installed. Click the '+' button to add a new printer. This opens the Printer Browser. Then hold down the Option key and click More Printers; this lets you access the "Advanced" options from the first popup menu.
From the Device menu, select Windows Printer via SAMBA. You can chose the Device Name yourself, but the "Device URI" is a little bit more complicated. It should look like this:
username is the username of an account on the Windows computer.
password is the password of this user on the Windows computer.
computername is the network name of the computer
printername is the name under which the printer is shared on the Windows computer.
For example, suppose there is a windows account "nele" (no password) on the computer named "vaste", and the printer is called "kyocera". Then you should type
Finally, select the correct printer model, and click Add.
You should now be able to print to your shared printer.
[kirkmc adds: I can't test the actual printing, not having a Windows computer, but the rest works fine.]
(Note that this obviously won't work on Intel Macs, which don't run Classic.)
Remember how OS X and OS 9's printer sharing protocols are completely incompatible with each other? While there are a number of convuluted ways to see an OS X printer from OS 9 (such as this hint), there isn't any readily apparent way to use an OS 9 printer from OS X without installing some absurdly expensive 3rd-party server or setting up an obtuse open source LPR server. Fortunately, Classic is quite a bit more complete than one might think, and contains everything you need to share a printer.
1. On the OS 9 server, set up USB Printer Sharing for your printer(s) on the OS 9 server as normal. (See Apple's help for details.)
2. On the OS X client, start up Classic if it isn't already running. If your installation of Classic on the OS X machine doesn't already have the OS 9 drivers for the printer you're trying to connect to, install them.
3. Once you've got the printer's drivers installed in your OS X machine's Classic System Folder, open the USB Printer Sharing control panel and preselect the printer(s) you want to print to. Now use the Chooser or Desktop Printer Utility to set up the printer.
4. If you made a desktop printer, you should be able to drop a file onto it in order to print. Alternately, open an OS 9 program under Classic and you should now be able to print.
Note that you need to have USB Printer Sharing enabled on the OS X client too in order for shared printers to work, and that Classic will not sleep while USB Printer Sharing is enabled, although you can turn USB Printer Sharing off and back on again without screwing anything up. Also, needless to say, this will only work while Classic is running.
[kirkmc adds: I haven't tested this; I don't have any Macs running OS 9.]
This tip will help you print successfully with the HP LaserJet 1012 and a print server with both Macintosh and PC connected through the same router. I have the Linksys PSUS4 (wired) PrintServer for USB with 4-port switch. I have two Macs (one running 10.4.9 and one on 10.3.9), and two PCs (both running XP). The PCs set up quickly, as there is a disc that comes with the print server for PCs. Linksys will not provide support for setting up a Mac. If you want to have your Mac see the printer, you may have to tell it manually.
My setup is four computers connected via ethernet cable into the Linksys router. The print server is also plugged into the router the same way. The printer is plugged into the print server's USB port. Here's what I did:
I installed the third party print driver for the HP LaserJet 1012 contained in the Gutenprint 5.0.0 print driver installer. I did not find that I could get HP's driver to be recognized in this setup process.
I found the printer's / print servers's IP address. This can be found if the printer is on and attached to the print server, and you hold and release the reset switch on the side of the print server for a least 10 seconds. The IP address will be something like xxx.xxx.x.xxx. This is not the router's IP address, which is likely in the format xxx.xxx.x.x mode. This should send a sheet to print directly to the printer, showing the IP address. Also, the IP address of the print server can easily be found if you have a PC on the LAN. Just install the disk that came in the box and the Linksys software can tell you.
I found a working queue name in Macintouch's Network Printers reader report. This was important, as I could not print without it. I was seeing the print server all day, but until I had a proper queue name, IP address, and 1012 driver listed, I could not print. The comment there that solved my problem was by John Robertson, who wrote "I use IP Printing, LPD/LPR and set Queue Name to 'LPT1' on Printer Address '192.168.2.1' with success for my HP 6MP on my home wireless/wired network." My IP is different, but I used his queue name in the LPD area of the IP setup in the Add Printer part of the system prefs.
Now all my computers are able to print on the same printer. It took me all day to figure this out, so I hope this helps someone else.
[robg adds: This same tip (without the minor changes to layout, adding of links, modifying of a few words, etc.) appears in the referenced Macintouch reader report -- but it was submitted here by the same author (based on the email address the author provided), so no, we're not reusing Macintouch's content!]
I wanted a way to automatically set up a printer without having to touch the machine and after much work, I did it (with a little help from some friends). Here are the steps I used in order to get it to work. Your mileage may vary, and this isn't a post action, since some of the commands aren't included on a default NetBoot image. You'll need Mike Bombich's excellent NetRestore
First, log into NetRestore's PHP services, and go to Database administration » Create Machine Specific Attributes. Add these specific field names (spelling and case counts!). The following is laid out in this order: field name | Data type | Default value (if any)...
printer_name | VARCHAR(63) |
printer_location | VARCHAR(63) |
printer_driver | VARCHAR(128) |
printer_address | VARCHAR(21) | lpd://
Step two follows: Change the 'Machine Specific Settings for Machines' settings for the machines that you want the script to set up printers for.