Archaic wrote:
While in a discussion with a friend, I found that I was not aware of
some of the particulars involved in a certain setup. The following
questions assume a non-postscript printer on a linux box shared via
samba.

When a print job comes in over smb from a windows client, and that
client has the correct printer driver installed, is that file already
transformed into what the printer can read? And if so, would the print
server need anything beyond cups? (This is assuming that no one is
printing directly from the print server itself).

This depends upon what you mean by "correct printer driver".

Scenario 1: Manufacturer-supplied printer driver. In this case, the data on the wire are in the format that the printer understands. For this to rork, raw print jobs must be enabled in CUPS (edit /etc/cups/mime.convs and /etc/cups/mime.types)

Scenario 2: The universal driver is downloaded from http://www.cups.org/windows/index.php - in this case, PostScript is used on the wire, and CUPS converts from PostScript to the printer format. For this to work, a Linux CUPS-compatible driver for the printer must be installed, e.g. this would be Gimp-Print (or now gutenprint) for Epson inkjets.

You want to read:

file:///usr/share/samba/swat/help/Samba3-HOWTO/classicalprinting.html
file:///usr/share/samba/swat/help/Samba3-HOWTO/CUPS-printing.html

Although, due to all complexity associated with SAMBA printing, I prefer configuring Windows 2000/XP clients to print directly to CUPS, without any need for SAMBA. To do that:

1) Configure CUPS so that you are able to print a test page from Linux. Enable access from the needed subnets in /etc/cups/cupsd.conf

2) Download http://ftp.easysw.com/pub/cups/windows/cups-samba-5.0rc3.tar.gz

3) Run the following commands
tar zxf cups-samba-5.0rc3.tar.gz
tar xf cups-samba.ss
cd usr/share/cups/drivers/
cp /etc/cups/ppd/relevant-printer.ppd .

4) Save the text below to the "cups.inf" file into the same directory and edit it to match the ppd file name. Be sure to set line end marks to DOS (CRLF).

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[Version]
Signature="$Windows NT$"
Provider="Microsoft"
ClassGUID={4D36E979-E325-11CE-BFC1-08002BE10318}
Class=Printer
DriverVer=03/16/2000,5.00.2195.1

[Manufacturer]
"CUPS"=CUPS

[CUPS]
"HP DeskJet 600/600C" = PCL-601.PPD

[PCL-601.PPD]
[EMAIL PROTECTED],PSCRIPT
DataSection=PSCRIPT_DATA

[PSCRIPT]
cupsdrv5.DLL
cupsui5.DLL
cups5.HLP

[PSCRIPT_DATA]
DriverFile=cupsdrv5.DLL
ConfigFile=cupsui5.DLL
HelpFile=cups5.HLP

[DestinationDirs]
DefaultDestDir=66000

[SourceDisksNames.x86]
1   = "CUPS Installation Disk"

[SourceDisksFiles]
cupsui5.dll    = 1
cups5.hlp  = 1
cupsdrv5.dll = 1
PCL-601.PPD = 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

5) Copy all files from usr/share/cups/drivers/ to some temporary folder on the Windows client. Start -> Settings -> Printers, add an Internet printer, type in the URL of the form http://print-server.example.com:631/printers/relevant-printer

When Windows asks for a driver, point it to that cups.inf file you got from this mail.

6) Print a test page from Windows.

Alternatively, you may want to use the stock Adobe PostScript driver (although I don't know any reason for such preference). In such case, you will need only the ppd file from CUPS and the following "adobe.inf" file:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[Version]
Signature="$Windows NT$"
Provider=%MS%
ClassGUID={4D36E979-E325-11CE-BFC1-08002BE10318}
Class=Printer

DriverVer=03/16/2000,5.00.2195.1
[ClassInstall32.NT]
AddReg=printer_class_addreg

[Manufacturer]
"CUPS"=CUPS

[CUPS]
"HP DeskJet 600 Series" = PCL-601.PPD

[PSCRIPT.OEM]
CopyFiles=PSCRIPT

[PCL-601.PPD]
[EMAIL PROTECTED],PSCRIPT
DataSection=PSCRIPT_DATA

[PSCRIPT]
PSCRIPT5.DLL
PS5UI.DLL
PSCRIPT.HLP
PSCRIPT.NTF

[PSCRIPT_DATA]
DriverFile=PSCRIPT5.DLL
ConfigFile=PS5UI.DLL
HelpFile=PSCRIPT.HLP

[DestinationDirs]
DefaultDestDir=66000

[SourceDisksNames.x86]
1   = %W2Kcd%,driver.cab,,"I386"
2   = "CUPS"

[SourceDisksFiles]
ps5ui.dll    = 1
pscript.hlp  = 1
pscript.ntf  = 1
pscript5.dll = 1
PCL-601.PPD = 2

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

In this case, after you point Windows to this inf file during the installation of the Internet printer, it will complain about missing PSCRIPT5.DLL file. Point it to the driver.cab file somewhere in C:\Windows\System32\Drivers

--
Alexander E. Patrakov
--
http://linuxfromscratch.org/mailman/listinfo/blfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to