Bocs, hogy hosszú idő után válaszolok, de félretettem a témát, míg nem kell nyomtatni. Most már látom én is, hogy a Windowsokba, így az XP-be is be van ez építve, mármint ezek a nyomtatási parancssoros toolok, lpr, lpq, stb., de ahogy nézem, nem kompatibilisek a kapcsolók a unixossal, egészen mások. Plusz mivel ez nincs reklámozva sehol a Windowsban, sem a dokumentációjában, így kb. senki se tud róla, szerintem a legtöbben még a MS-nál sem ismerik, hogy benne van, ezért olyan, mintha benne se lenne. Igen, technikailag igazad van, benne van, és aki tud róla, az tud róla, utánakeresve meg is találja a dokumentációját, de pont ez a poén, hogy csak az, aki már eleve tud róla.
Most jutatottam el még oda, hogy nyomtassak újra Linux alatt, most is csak azért volt rá szükségem, mert az egyik ismerősöm még a múlt századan él, és néha napján kell neki nyomtatni. Elég kaoutikus és körülményes ez az lp/lpr téma, főleg a kettő dualitása, más-más opciókat esznek meg. Végül arra jutottam, hogy az a sysv lp jobb, több mindent be lehet állítani rajta. Pl. a bizonyos dokumentumtartományok (csak bizonyos oldalak) nyomtatása támogatottak lpr-rel, az -o page-ranges=bla-bla segítségével, de csak elméletben, mert ha a nyomtató drivere nem tudja, akkor bukta, szerencsére az lp parancs -P kapcsolója szintén tudja, ráadásul nyomtatófüggetlenül.
Tehát aki CLI-ből akar nyomtatni, annak mindenképp az lp parancsot ajánlom. Egyelőre, mert ez az ajánlásom változik, hiszen van egy elegánsabb módszer is a nyomtatásra, ha a nyomtató támogatja az IPP protokollt, akkor CUPS nélkül is lehet nyomtatni, meg ha csak a PS-t támogatja, akkor lpr-rel közvetlenül a printer device-ra küldve, ilyen szempontból az lpr a jobb. Elméletben utóbbi elé be lehetne tervezni egy szűrőt, ami átkonvertálja a PS-t a nyomtató által ismert nyelvre, pl. PCL.
A nyomtatás mindenképp egy olyan műfaj, hogy minden OS-en szarul van megoldva, körülményes, bloat. A CUPS-ot se szeretem, ennek nem kéne egy szimpla gépen (home, desktop, stb. ahol közvetlenül nyomtatnak, nincs nyomtatómegosztás, meg prioritáskezelés, jogosultságok, webszerveres felület, stb.) ilyen bonyolultnak lennie, hogy mindenféle szervert kelljen futtatni. Tényleg olyannak kéne lennie, mint DOS, Unix alatt volt, hogy egyféle print/lpr parancs, ami közvetlenül az eszözre küldi az adatokat, vagy akár cat-tal el lehet küldeni közvetlenül az eszközre is. Ennek az egyszerűsége kéne, nem 50 féle absztrakció 100 féle API-val, 100 csomagnyi függőséggel, mert agyrém komplexitás lesz belőle.