How to get your stuff on paper from macOS and Linux
Overview
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.
Kinkos
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
- Write down the name and model of the printer you want to print to. Example: “HP OfficeJet 4650 series”.
-
Click the Apple icon in the menu at the top-right corner, System Preferences, “Printers & Scanners”.
- Press the “+” at the lower-left corner of the dialog and select the printer, if it’s listed.
-
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:
-
Plug a USB cable of 3 meters or less (9 ft 10 in) in length.*
-
Within most GUI applications, hold command and press P (command-P) to “Print”. A pop-up dialog should appear.
-
Click “Show Details” for Advanced print settings
- 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.
-
yum install cups installs like 48 dependencies.
-
Configure web interface from remote systems:
vim /etc/cups/cupsd.conf
MaxLogSize 0 DefaultEncryption Never LogLevel warn Listen localhost:631 Listen 192.168.56.106: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 allow 192.168.56.106/24 <Location> <Location /admin> Order allow,deny allow localhost allow 192.168.56.106/24 <Location>
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.
-
CUPS is started by default. But …
systemctl start cups
-
See if available
netstat -tln
-
How’s the CUPS (Common UNIX Printing System) scheduler daemon?
On MacOS:
systemctl status cups
On Linux:
systemctl status cups service cups status
-
Open the printer management GUI webapp Welcome page on port 631:
firefox http://localhost:631/admin
NOTE: The program was designed by Apple for OSX.
-
To list available printer models:
lpinfo -m
-
To list available connection types:
lpinfo -v
Response:
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
-
Printer definition (PPD files) which define each printer can exist in several folders:
find / -name "*ppd" 2>/dev/null
Example output:
/usr/bin/cupstestppd /usr/sbin/pppd /usr/local/Cellar/ghostscript/9.50/share/ghostscript/9.50/lib/cbjc600.ppd /usr/local/Cellar/ghostscript/9.50/share/ghostscript/9.50/lib/ghostpdf.ppd /usr/local/Cellar/ghostscript/9.50/share/ghostscript/9.50/lib/cbjc800.ppd /System/Library/Printers/Libraries/ipp2ppd /private/etc/cups/ppd /private/etc/cups/ppd/NYC-SecurePrint-BW.ppd /private/etc/cups/ppd/undefined.ppd /private/etc/cups/ppd/NYC-SecurePrint-Color.ppd /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
-
List PPD printer definitions defined in a file which requires sudo to view:
/etc/cups/printers.conf
lpadmin
-
Define the default printer:
lpadmin -d textprinter
-
To inactivate a queue:
cupsdisable
-
To activate a queue:
cupsenable
lpr
-
See if a printer is ready:
lpr -Ptextprinter
-
Send the hosts file as a print job to the default printer:
lpr -Ptextprinter /etc/hosts
lpr -P p1 /etc/cups
-
List print jobs:
lpq -Pprintername
-
Remove last print job:
lprm
-
Remove all my print jobs (stalled in the print queue):
lprm --
-
See who accessed the printer:
tail /var/log/cups/access_log
-
List errors:
tail /var/log/cups/error_log
Resources
https://learning.oreilly.com/videos/comptia-linux/9780134426365/9780134426365-LPC2_01_02_00
More on OSX
This is one of a series on Mac OSX:
- MacOS Setup step-by-step, with automation
- MacOS Hardware and accessories
- MacOS dotfiles for System Preferences setup automation
- MacOS Boot-up
- MacOS Keyboard tricks
- MacOS Terminal Tips and Tricks
- Text editors and IDEs on MacOS
- MacOS Xcode.app and CommandTools (gcc)
- MacOS Command-line utilities
- Applications on MacOS
- 1password on MacOS
- Manage Disk Space on MacOS
- Screen capture on MacOS
- MacOS iPhone integration
- Linux and Windows on Apple MacOS
- Packer create Vagrant Windows image
- Python on MacOS
- Maven on MacOS
- Ruby on MacOS
- Node on MacOS installation
- Java on MacOS
- Scala ecosystem