You are mixing awfully lots of things. PPDs are not drivers. Those are PostScript Printer Description files. foomatic-rip filter uses them to decide which driver to call. If the driver is Guthenprint it calls it. Ghostscript is just another collection of printer drivers.
Apsfilter is as the name said just another filter (parse file which you sent to printer, calls appropriate program to convert it to PostScript and then calls appropriate driver if the printer doesn't have built in PostScript interpreter). foomatic-rip does the same. So make your pick.
Here is my printcal for the local printer.
Code:
lp|Lj4L|HP Lj4L:\
:lp=/dev/lpt0:\
:af=/etc/foomatic/HP-LaserJet_4L-ljet4.ppd:\
:if=/usr/local/bin/foomatic-rip:\
:sh:sd=/var/spool/output:\
:lf=/var/log/lpd-errs:
Now your printer is remote which means that you will replace line
with something like
Code:
:lp=:rm=192.168.2.xxx:\
Permission problem indicates two things
1. Your spooling directory
sd=/var/spool/output
doesn't have appropriate permission 755.
2. Secondly if your printer server is on another machine you have to edit
/etc/hosts.lpd
in that machine and enter IP address of the client machine (machine that you are trying to print from).
Finally if you are using some kind of stand alone printer server for all I know that thing might be speaking only IPP protocol which lpd daemon doesn't speak.
PS. I forgot to add that you obviously have to pass the traffic in your firewall out of your printer client and also server has to be able to get it. So you have to open 515/tcp port on the server.