Wilson Mar bio photo

Wilson Mar


Calendar YouTube Github


How to get your stuff on paper from macOS and Linux

US (English)   Norsk (Norwegian)   Español (Spanish)   Français (French)   Deutsch (German)   Italiano   Português   Estonian   اَلْعَرَبِيَّةُ (Egypt Arabic)   Napali   中文 (简体) Chinese (Simplified)   日本語 Japanese   한국어 Korean


This tutorial describes how to print to paper.

NOTE: Content here are my personal opinions, and not intended to represent any employer (past or present). “PROTIP:” here highlight information I haven’t seen elsewhere on the internet because it is hard-won, little-know but significant facts based on my personal research and experience.

Better looking paper

As the world undergoes “Digital Transformation”, less and less paper is the objective.

That means when paper is printed, it would be more and more dear.

Premium paper stock have a finer grain, which make the output richer looking.

PROTIP: Before spending the money, get the highet resolution version of an image.

To reduce file size, some applications (Microsoft Word, PowerPoint, etc.) reduce the “color profile” and/or pixel resolution of images when an image is pasted onto the app. So archive the original file to have it at the highest resolution, in .png file type, in case you need it in the future.

Emails to HPePrint.com

Many HP printers, after being configured to connect to the public internet, can receive print jobs by sending email to an address such as 47aicco56ajanb@hpeprint.com. This allows anyone to print to your printer by sending an email attached with a file to be printed (PDF, png, jpg, tiff, etc.).

Emailing means you don’t have to install a driver specific to a printer via WiFi on the same network or USB cabled connection.


Have canvases and posters printed on large format printers at a FedEx Kinkos retail center. Click “START ORDER” for a form to drop a file onto. Cost is $1.99 per square foot as of this writing.

Printer driver install

  1. Write down the name and model of the printer you want to print to. Example: “HP OfficeJet 4650 series”.
  2. Click the Apple icon in the menu at the top-right corner, System Preferences, “Printers & Scanners”.


  3. Press the “+” at the lower-left corner of the dialog and select the printer, if it’s listed.
  4. Click the name of the printer you want to print to. Example: “HP OfficeJet 4650 series”, then “Add”.

    Alternately, if you don’t see the printer, add it. PROTIP: Rather than allowing drivers to be intalled, HP and other printer manufacturers now have users to install entire applications on your laptop to serve up advertisements. Install on your iPhone or Android mobile app from:


  5. Plug a USB cable of 3 meters or less (9 ft 10 in) in length.*

  6. Within most GUI applications, hold command and press P (command-P) to “Print”. A pop-up dialog should appear.

  7. Click “Show Details” for Advanced print settings

  8. PROTIP: To create a PDF file, click the arrow next to “PDF” at the lower-left corner, then select “Print to PDF”.

When you click OK, a file containing Postscript code is sent to the Print Queue, which can take a few seconds. The Print Queue is represented by a printer icon in the Apple Dock. Double-click on the Printer Icon to manage the print queue.

Linux CUPS

Most printer hardware today output to the Postscript standard rather than the older Postfix standard.

Ghostscript uses smart filters to recognize whether it is receiving Postscript or text, then translates inputs to the language of each specific printer. printer driver integrated part of Ghostscript.

app output -> Ghostscript -> queue -> printer

On Linux (CentOS) the CUPS (Common UNIX Printing System) scheduler daemon listens on IPP or print streams to be processed into GhostScript.

  1. yum install cups installs like 48 dependencies.

  2. Configure web interface from remote systems:

    vim /etc/cups/cupsd.conf
    MaxLogSize 0
    DefaultEncryption Never
    LogLevel warn
    Listen localhost:631
    Listen /var/run/cups/cups.sock
    # Show shared printers on the local network:
    Browsing On
    BrowseLocalProtocols dnssd
    DefaultAuthType Basic
    WebInterface Yes
    <Location />
    Order allow,deny
    allow localhost
    <Location /admin>
    Order allow,deny
    allow localhost

    Alternately, configure printer access settings using CLI:

    lpadmin -p printer -E -v device -m name-of-ppd 

    -E specifies an Encrypted connection to the printer (like HTTPS).

    This updates file /etc/cups/cupsd.conf which defines policies in XML format.

  3. CUPS is started by default. But …

    systemctl start cups
  4. See if available

    netstat -tln
  5. How’s the CUPS (Common UNIX Printing System) scheduler daemon?

    On MacOS:

    systemctl status cups

    On Linux:

    systemctl status cups
    service cups status
  6. Open the printer management GUI webapp Welcome page on port 631:

    firefox http://localhost:631/admin

    Screen Shot 2020-06-24 at 11 02 03 AM

    NOTE: The program was designed by Apple for OSX.

  7. To list available printer models:

    lpinfo -m
  8. To list available connection types:

    lpinfo -v


    serial serial:/dev/ttys0?baud=115200
    network lpd
    network ipp
    network smb
    network https
    network ipps
    network http
    network socket
    direct epsonfax
    direct parllel:/dev/lp0
  9. Printer definition (PPD files) which define each printer can exist in several folders:

    find / -name "*ppd" 2>/dev/null

    Example output:

    /Users/wilson_mar/Library/Application Support/WebEx Folder/T33_64UMC_39.11.6.33/Meeting Center.app/Contents/PlugIns/pd.bundle/Contents/Resources/Webex_PDF_Printer.ppd
    /Applications/Microsoft Word.app/Contents/Frameworks/MetEx.framework/Versions/A/Resources/encoding/adpdf6cs.ppd
  10. List PPD printer definitions defined in a file which requires sudo to view:



  11. Define the default printer:

    lpadmin -d textprinter
  12. To inactivate a queue:

  13. To activate a queue:



  14. See if a printer is ready:

    lpr -Ptextprinter 
  15. Send the hosts file as a print job to the default printer:

    lpr -Ptextprinter /etc/hosts
    lpr -P p1 /etc/cups
  16. List print jobs:

    lpq -Pprintername
  17. Remove last print job:

  18. Remove all my print jobs (stalled in the print queue):

    lprm --
  19. See who accessed the printer:

    tail /var/log/cups/access_log

  20. List errors:

    tail /var/log/cups/error_log



More on OSX

This is one of a series on Mac OSX: