(From a long reader email outlining the steps he took to print from Jaguar to a Windows printer.)
Subject: FYI: Jaguar can print to NON-Postscript, Windows printers...
"
It's about damn time too.. :)
First off, I apologize if this is hard to follow. I've been writing it at
work on the fly between new builds of our application and dozens of phone
calls. :)
Anyways....
Apple made a very good choice by using CUPS in Jaguar. CUPS is an excellent,
standardized, fast and heavily supported printer management/queue system for
UNIX systems.
This functionality doesn't seem to be enabled by default, but I've
successfully configured Jaguar to print to a NON-Postsccript Windows based
printer via SMB (native windows printer sharing). I did the following to
print to an HP LaserJet 2100. The printer is parallel based and is attached
to an AMD system running Windows XP.
1. Open Terminal.app and become super-user (type "su"). You need to have the
root user enabled to do this, and that is outside the scope of this e-mail.
2. Once you are SU, switch to the /usr/libexec/cups/backend directory:
# cd /usr/libexec/cups/backend <hit return>
# pwd <hit return>
/usr/libexec/cups/backend
3. Now that you're in the right place, we need to place a symbolic link to
the SMB printer spooling module that ships with Jaguar. I'm baffled as to
why Apple didn't do this anyways (maybe 10.2.1 or something) as it seems to
very trivial to do.
# ln -s /usr/bin/smbspool /usr/libexec/cups/backend/smb <hit enter>
4. Now, reboot the machine (or KILL and restart the cupsd process if you're
familiar with how) to reload the configuration and make CUPS notice a new
spooler location.
5. Now, open Internet Explorer and go to the following URL:
http://127.0.0.1:631. This is the CUPS administration interface. Click on PRINTERS on the menu bar across the top of the screen and then click the ADD
PRINTER button.
6. The NAME is the printer spool name you want to use, and is what shows up
in Print Center once you are done. Remember, you cannot use SPACES.
The location and description fields are just for you to remember where the
printer is and what it does, in the event you have dozens of remote printers
to choose from.
Fill in AT LEAST the Name field. The other two seem to optional. For
example, I used:
Then, click CONTINUE.
(Update - a reader sent a tip/correction to this step and a revised/simplified guide below-Mike)
7. The next screen will ask for the DEVICE you want to use to print with. You should see, at the bottom of the list:
"Windows Printer via SAMBA"
.
This option is detected by CUPS courtesy of that symbolic link we made in the /usr/libexec/cups/backend folder.
Select this option and click CONTINUE.
8. Next, you need to enter the DEVICE URI of the printer. This is fairly
simple to formulate:
smb://[WORKGROUP];<user>:<password>@<SERVER NAME>/<SHARE NAME>
Options in [ ] are optional
.
Options in < > are mandatory, best I can tell.
For example, to print to my printer, I entered:
smb://REALCAFE;dylan:password@LAURA/HP
Where:
* REALCAFE is my workgroup.
* Dylan is my username.
* Password is my password.
* LAURA is the name of the computer the printer is attached to. You can also
use an IP address instead, but being able to use LAURA (the Windows
networking/NetBIOS name of the system) make it especially nice, as we use
DHCP and Laura's IP address changes daily.
* HP is the name of printer share.
Once you have this information filled in, click continue.
9. On the next screen, select the MAKE of the printer you are printing too.
Only a few types are listed, though if you do a search for CUPS and
CUPSOMATIC on the web, you might have luck installing a new printer driver
for whatever printer you happen to have. I happen to have an HP, so I
selected HP.
Then, click continue.
10. Next, select the model of printer you have. As I said, I happen to have
an HP 2100, so I selected HP LaserJet Series.
Then, click continue.
11. That's it. You'll get a message saying that the printer has been
correctly added. Close the Internet Explorer window.
12. If you open up Print Center now, you'll see your printer has been added. Try printing from an application.
If all is well, it should work. You might have to play with it to get the
settings exactly right, but this definitely shows the potential of CUPS and
OS X to give Mac users access to worlds of new printer hardware that we
haven't had access to in the past.
Take care,
Dylan
PS: I deleted all my printers and configured my own HP again, step by step
while I was writing this e-mail. Once I was done, I saved the message as a
draft in Entourage and printed it to my newly configured
"HP_2100_at_Front_Desk".
A 30 second walk to our foyer yielded a perfectly printed copy of this
e-mail message, straight from Jaguar to the HP 2100, via SMB and Windows XP.
Finally, we're really making some progress here. :)
"
"
Finally!
I have been waiting for months for the ability to print from Mac OS X to
the Epson Photo 700 hanging off the parallel port of our Windows NT box.
This article helped me considerably. Unfortunately, the original author
got the printer URI syntax wrong (in step 7 below). This took me a
couple
of hours to figure out. I also simplified a couple of steps so you
aren't
required to enable the root user or restart the computer. Lastly, I
added
a couple of reference pointers for more information and troubleshooting.
Brett Johnson
---- My modified text of the original message from Dylan follows ------
Apple made a very good choice by using CUPS in Jaguar. CUPS is an
excellent,
standardized, fast and heavily supported printer management/queue
system for
UNIX systems.
This functionality doesn't seem to be enabled by default, but I've
successfully
configured Jaguar to print to a NON-Postscript Windows based printer
via SMB
(native windows printer sharing). I did the following to print to an HP
LaserJet
2100. The printer is attached to the parallel port of an AMD system
running
Windows XP.
1. Open Terminal.app. You need super-user privileges (su root or sudo,
not
discussed here) to perform the following steps.
2. We need to place a symbolic link to the SMB printer spooling module
that ships
with Jaguar. I'm baffled as to why Apple didn't do this anyways (maybe
10.2.1 or
something) as it seems to very trivial to do.
sudo ln -s /usr/bin/smbspool /usr/libexec/cups/backend/smb
3. Now, force cupsd to reload the configuration and make CUPS notice a
new spooler
location. If you understand how this works, consider yourself a Unix
power user.
sudo kill -HUP `ps -axww | grep /usr/sbin/cupsd | grep -v grep | cut
-c 1-6`
4. Now, open your favorite web browser and go to the following URL:
http://127.0.0.1:631. This is the CUPS Administration Interface.
Click on PRINTERS on the menu bar across the top of the screen and
then click the ADD PRINTER button.
5. The NAME is the printer spool name you want to use. NAME cannot
contain SPACES.
The DESCRIPTION is the human-readable string that appears in Print
Center. It may
contain spaces. If you don't supply a DESCRIPTION, then NAME is used
instead.
The optional LOCATION is helpful for organizations with printers
scattered over
many, uh, locations.
For example, I used:
NAME: "HP_2100_at_Front_Desk"
LOCATION: "Front Desk"
DESCRIPTION: "HP LaserJet 2100"
Then, click CONTINUE.
6. The next screen will ask for the DEVICE you want to use to print
with.
You should see, at the bottom of the list:
"Windows Printer via SAMBA"
This option is detected by CUPS courtesy of that symbolic link we made
in the /usr/libexec/cups/backend folder.
Select this option and click CONTINUE.
7. Next, you need to enter the DEVICE URI of the printer.
This is fairly simple to formulate (see man smbspool):
smb://username:password@workgroup/server/sharename
For example, to print to my printer, I entered:
smb://dylan:password@REALCAFE/LAURA/HP
Where:
* dylan is my Windows username. Obviously, this user must have print
privileges.
* password is my Windows password. Since this password is viewable a
plain-text in the CUPS configuration and log files, you might consider creating a
specific low-privilege Windows user just for printing.
* REALCAFE is my workgroup.
* LAURA is the name of the computer the printer is attached to.
You can also use an IP address instead, but being able to use LAURA
(the Windows networking/NetBIOS name of the system) make it especially
nice, as we use DHCP and Laura's IP address changes daily.
* HP is the name of printer share.
Once you have this information filled in, click CONTINUE.
8. On the next screen, select the MAKE of the printer you are printing
to. Only a few types are listed, though if you do a search for CUPS and
CUPSOMATIC on the web, you might have luck installing a new printer driver for
whatever printer you happen to have. The gimp-print project has lots of
high-quality CUPS drivers for many printers
(
http://www.allosx.com/1030154694/index_html).
I happen to have an HP, so I selected HP.
Then, click CONTINUE."