Many people don’t realize that Apple’s Contacts app on the Mac can print, but it’s not terrible at making mailing labels, envelopes, and lists. Unfortunately, Apple hasn’t paid much attention to Contacts in years, and the result is a particularly egregious printing-related freeze in macOS 14 Sonoma’s version of Contacts. (And yes, the bug still exists in macOS 14.2.) Thanks to John Hepburn for bringing this to my attention on TidBITS Talk.
You can reproduce the freeze by selecting one or more contacts that have a decent amount of information associated with them, choosing File > Print, choosing Lists from the Styles pop-up menu, and waiting briefly—you don’t even need to click Print. Unless your Mac is different from mine, you’ll quickly see the dreaded spinning pizza of death cursor, and your only escape is to click and hold the Contacts icon in the Dock and choose Force Quit. The problem does not rear its ugly head if you attempt to print mailing labels or envelopes.
I strongly suspect the bug lives in the code that draws the preview on the left side of the Print dialog. If you select only a single contact whose information does not include the selected attributes that can be printed in a list, Contacts won’t freeze, and you can even print the list. Of course, printing a list of a single contact is pointless, and selecting multiple contacts, even those that wouldn’t trigger the bug on their own, does cause the freeze.
A more problematic situation arises if Lists somehow becomes selected such that the Print dialog would open with it showing in the Styles pop-up menu. When that’s the case, merely choosing File > Print will result in the spinning pizza of death, preventing you from printing at all.
Although I’ve found no way around the bug—I have reported it to Apple, for whatever that’s worth—there is a way to recover from being prevented from opening the Print dialog.
Kudos to Jeff Fischer on TidBITS Talk for pointing toward the solution: editing
~/Library/Preferences/com.apple.AddressBook.plist to change the
ABSelectedPrintStyle value (in the
<integer>#</integer> line underneath) to
0 (Mailing Labels) or
1 (Envelopes). Because .plist files can be cached in memory, the best way to accomplish this is by copying and pasting this
defaults write command into Terminal, giving Terminal permission to access Contacts when prompted:
defaults write com.apple.AddressBook ABSelectedPrintStyle 0
Personally, I prefer to work with contacts in Cardhop from Flexibits, which can print contact lists in Sonoma. Printing isn’t one of Cardhop’s marquee features, but all you have to do is open Cardhop’s menu, select the desired contacts (easiest after displaying its sidebar of groups), and press Command-P to print the same mailing labels, envelopes, and lists.