I'm trying to get my Samsung color laser working with AirPrint. There are a couple of fairly sparse tutorials around and I've got as far as I can on this one. I wonder is anyone can help me get over the final hurdle.
The printer natively supports IPP printing, so as soon as I installed Avahi it automagically started advertising this service on the network.
= br-lan IPv4 Samsung CLP-670 Series (SEC001599954BCF) _ipp._tcp local hostname = [SEC001599954BCF.local] address = [192.168.1.60] port =  txt = ["Punch=0" "Staple=F" "Sort=F" "Collate=F" "Bind=F" "PaperCustom=T" "Duplex=T" "Copies=F" "Color=T" "Binary=T" "Transparent=T" "MDL=CLP-670 Series" "MFG=Samsung" "adminurl=http://192.168.1.60" "pdl=application/octet-stream,application/postscript,application/x-QPDL" "product=(Samsung CLP-670 Series)" "ty=Samsung CLP-670 Series" "priority=51" "qtotal=1" "txtvers=1"]
However no IOS devices could see it. So then, filling in the blanks from a few tutorials, I created a custom avahi service file that advertised the printer with the correct flags that would make it work with Airprint. This is the manually advertised service in avahi-browse:
= br-lan IPv4 attic-printer _ipp._tcp local hostname = [SEC001599954BCF.local] address = [192.168.1.60] port =  txt = ["URF=W8,SRGB24,CP1,RS600" "pdl=application/octet-stream,application/pdf,application/postscript,image/jpeg,image/png,image/urf" "Scan=F" "Sort=F" "Bind=F" "Punch=F" "Collate=F" "Copies=T" "Staple=F" "Duplex=T" "Color=T" "Fax=F" "Binary=T" "Transparent=T" "printer-type=0x801046" "printer-state=3" "product=(Samsung CLP-670 Series)" "priority=51" "note=Samsung CLP-670 Series" "adminurl=http://220.127.116.11" "ty=Samsung CLP-670 Series" "qtotal=1" "txtver=1"]
Bingo, now the iOS devices could 'see' my Samnsung printer. However, when trying to print the iPad goes through all the motions ("Connecting to printer", "preparing document") but then silently fails to actually print anything.
I believe, if my reading is correct, this is because the Samsung printer (as you can see from it's native service annoucement) does not support JPG or PDF print formats and it expecting raw data or PostScript. However deugging AirPrint as a user seems to be next to impossible.
So I believe I now need to insert a CUPS server into the mix to 'proxy' the printer and translate between the PDF output of the iPad and the PS input of the printer. So I managed to compile CUPS for Openwrt and get it installed and have the printer set up in CUPS (test print works).
So then, I modified my airprint service definition for avahi to advertise the CUPS ipp printer on my router rather than the printer itself. However after this change the printer no longer shows up on the Avahi service list.
Can anyone help?