I would recommend magicfilterconfig for getting a lprng/lpr system working.
Typical autogenrated printcap file.  

# This file was generated by /usr/sbin/magicfilterconfig.
#
#lp|es800|Epson Stylus 800:\
#       :lp=/dev/lp0:sd=/var/spool/lpd/es800:\
#       :sh:pw#80:pl#66:px#1440:mx#0:\
#:if=/etc/magicfilter/es800-filter:\
#       :af=/var/log/lp-acct:lf=/var/log/lp-errs:
# APS1_BEGIN:printer1
# - don't delete start label for apsfilter printer1
# - no other printer defines between BEGIN and END LABEL
lp|es800|st800;r=600x600;q=medium;c=full;p=letter;m=auto:\
    :lp=/dev/lp0:\
    :if=/etc/apsfilter/basedir/bin/apsfilter:\
    :sd=/var/spool/lpd/es800:\
    :lf=/var/spool/lpd/es800/log:\
    :af=/var/spool/lpd/es800/acct:\
    :mx#0:\
    :sh:
# APS1_END - don't delete this

Typical /etc/hosts.lpd

# /etc/hosts.lpd: list of hosts that are allowed to use the printing
#                 services of this machine.  See lpd(8)
127.0.0.1
192.168.1.3
192.168.1.4

Typical smb.conf printer section

[es800]
        comment = Epson Stylus 800
        path = /var/spool/lpd/samba
        hosts allow = 192.168.1.
        printable = Yes
        print command = lpr -r %s
        lpq command = lpq
        lprm command = lprm %j

Use swat http://localhost:901/ to get started with samba.

As you may see from above, /var/spool/*  is usually the home of the directory actual
Print files are written to.

Some relevant sections of cupsd.conf 

ServerName  hostname
LogLevel  info (debug)
Browsing on
BrowseProtocols cups (all)
BrowseAddress 192.168.1.255
BrowsePoll

<Location />
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 192.168.1.*
</Location>

<Location /admin>
AuthType Basic
AuthClass System

## Restrict access to local domain
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 192.168.1.*

#Encryption Required
</Location>

Once you have enabled browsing in cupsd.conf and opened up 
http://localhost:631/  life will become good.

If your printer is not supported please check http://www.linuxprinting.org for the appropriate .ppd.
Some meaty lines from one of my .ppds

*HWMargins: 18 14.4 18 14.4
*VariablePaperSize: True
*MaxMediaWidth: 100000
*MaxMediaHeight: 100000
*NonUIOrderDependency: 105 AnySetup *CustomPageSize
*CustomPageSize True: "pop pop pop pop pop
%% FoomaticRIPOptionSetting: PageSize=Custom"
*End
*FoomaticRIPOptionSetting PageSize=Custom: " -dDEVICEWIDTHPOINTS=0 -dD&&
EVICEHEIGHTPOINTS=0"
*End
*ParamCustomPageSize Width: 1 points 36 100000
*ParamCustomPageSize Height: 2 points 36 100000
*ParamCustomPageSize Orientation: 3 int 0 0
*ParamCustomPageSize WidthOffset: 4 points 0 0
*ParamCustomPageSize HeightOffset: 5 points 0 0

*FoomaticIDs: HP-LaserJet_1150 hpijs
*FoomaticRIPCommandLine: "gs -q -dBATCH -dPARANOIDSAFER -dQUIET -dNOPA&&
USE -sDEVICE=ijs -sIjsServer=hpijs%A%B%C -dIjsUseOutputFD%Z -sOutputFi&&
le=- -"
*End

*Quality 600GrayscaleK/600 dpi, Grayscale, Black Cartr.: "%% FoomaticRIPOptionSe
tting: Quality=600GrayscaleK"
*FoomaticRIPOptionSetting Quality=600GrayscaleK: " -r600 -sIjsParams=Q&&
uality:Quality=0,Quality:ColorMode=0,Quality:MediaType=0,Quality:PenSe&&
t=0"
*End

Notice the gs or ghostscipt command.  I also included some foomatic stuff.

Gnome & KDE backends – Vector directly to postscript simplifying authors job.

Other configurators,   Printtool (old), kprint, 

Other driver sources, gimp-print, OpenOffice 5.2 (Old)