It is usually best to use a native printing protocol. For Ubuntu, LPD and CUPS are native. Most versions of Windows support network printing to LPD servers, so sharing with LPD should be enough, but it requires users to configure their printers.
Native Windows environments can share printers using the Server Message Block (SMB) protocol. This allows Windows users to browse the Network Neighborhood and add any shared printers-very littlemanual configuration is required. For Ubuntu to share a printer with Windows users requires installing SAMBA, an open source SMB server.
On the print server:
1. Install SAMBA on the print server. This providesWindows SMB support:
sudo apt-get install samba
2. Create a directory for the print spool:
sudo mkdir /var/spool/samba/
3. Edit the SAMBA configuration file: /etc/samba/smb.conf.
4. Under the [global] section, change workgroup = to match yourWindows Workgroup. For example, my office workgroup is SLUGGO:
workgroup = SLUGGO
5. Under the [global] section is an area for printer configuration. Uncomment (remove the leading ;) the load printers = yes andCUPSprinting lines.
########## Printing ##########
# If you want to automatically load your printer list rather
# than setting them up individually then you’ll need this
load printers = yes
# lpr(ng) printing. You may wish to override the location of the
# printcap file
; printing = bsd
; printcap name = /etc/printcap
# CUPS printing. See also the cupsaddsmb(8) manpage in the
# cupsys-client package.
printing = cups
printcap name = cups
6. Set the [printers] section to look like this:
comment = All Printers
browseable = no
security = share
use client driver = yes
guest ok = yes
path = /var/spool/samba/
printable = yes
public = yes
writable = yes
create mode = 0700
This setting allows any Windows client to access the printers without a password.
7. (Optional) Under the [printers] section, set browseable = yes. This allows Windows systems to see the printers through the Network Neighborhood.
8. Restart the SAMBA server:
sudo /etc/init.d/samba restart
On the Windows client, you can add the printer as if it were a Windows printer. For example, if the server’s name is printer.home.com and the printer is Okidata, then the shared printer resource would be \\printer.home.com\Okidata.Windows clients will need to install their own print drivers.
Source of Information : Wiley Ubuntu Powerful Hacks And Customizations