I have a .ps file that I want to print from my mac. I'm trying to use lpr. But every time I print it all I get is the actual bytes just printed with like hundreds of pages and this is not what I want. I want the printer to just print the ps directly. What command should I use to make this work?
I have a .ps file that I want to print from my mac. I'm trying to use lpr. But every time I print it all I get is the actual bytes just printed with like hundreds of pages and this is not what I want. I want the printer to just print the ps directly. What command should I use to make this work?
The solution is to bypass the normal CUPS filters so that your PostScript file is sent “as is” to the printer. You can do this by using the literal (-l) flag. For example: lpr -l yourfile.ps The -l option tells CUPS not to do its normal text-to-PDF (or other) conversion, so if your printer understands PS files, it should print correctly.
Testing if the previous output contains the string -l
: True
Testing if the previous output contains the string -o raw
: False
I have a .ps file that I want to print from my mac. I'm trying to use lpr. But every time I print it all I get is the actual bytes just printed with like hundreds of pages and this is not what I want. I want the printer to just print the ps directly. What command should I use to make this work?
I have a .ps file that I want to print from my mac. I'm trying to use lpr. But every time I print it all I get is the actual bytes just printed with like hundreds of pages and this is not what I want. I want the printer to just print the ps directly. What command should I use to make this work?
On macOS the lpr command by default processes the file before sending it to the printer, which isn’t what you want for a PostScript file. To send the file directly (raw) to the printer without filtering, use the -l option. For example: lpr -l yourfile.ps This tells lpr to print the file “literal” (i.e. without processing) so the printer receives the PostScript data directly.
Testing if the previous output contains the string -l
: True
Testing if the previous output contains the string -o raw
: False