Check if your printer name displays in the Printers list, If your printer is listed, click the printer name, click the minus sign to delete the printer. 4.) If you see multiple printer queues for the same printer, remove all extra printers by selecting them one at a time, and then clicking the minus button at the bottom of the list.
This document describes how to develop printer drivers for raster printers. Topics include: printer driver basics, creating new PPD files, using filters, implementing color management, and adding macOS features.
See Also | Programming: Developing PostScript Printer Drivers Programming: Filter and Backend Programming Programming: Introduction to the PPD Compiler Programming: Raster API References: PPD Compiler Driver Information File Reference Specifications: CUPS PPD Extensions |
---|
Yet, after doing this no printer showed in the Printer & Scanners window. I unplugged my printer, waited x 10 sec and replugged in. My printer showed up under a Bonjour printer and now able to print again. Hope this helps. BTW Brother Printers still has no new driver for Mac OS 11 for my printer. Sudo launchctl start org.cups.cupsd That should resolve the issue; it did for me when I tried it. crarko adds: I did the steps, and it appears to do what it says. To the cups URI in your MacOS cups server. Call your browser (enable the interface in terminal with 'cupsctl WebInterface=yes'). Choose 'Modify Printer', authenticate and select the IPP or IPPS printing protocol.
Contents
Printer Driver Basics
A CUPS raster printer driver consists of a PostScript Printer Description (PPD) file that describes the features and capabilities of the device, one or more filter programs that prepare print data for the device, and zero or more support files for color management, online help, and so forth. The PPD file includes references to all of the filters and support files used by the driver.
Every time a user prints something the scheduler program, cupsd(8), determines the format of the print job and the programs required to convert that job into something the printer understands. CUPS includes filter programs for many common formats, for example to convert Portable Document Format (PDF) files into CUPS raster data. Figure 1 shows the data flow of a typical print job.
The raster filter converts CUPS raster data into a format the printer understands, for example HP-PCL. CUPS includes several sample raster filters supporting standard page description languages (PDLs). Table 1 shows the raster filters that are bundled with CUPS and the languages they support.
Filter | PDLs | ppdc DriverType | ppdc #include file |
---|---|---|---|
rastertoepson | ESC/P, ESC/P2 | epson | epson.h |
rastertoescpx | ESC/P, ESC/P2, EPSON Remote Mode | escp | escp.h |
rastertohp | HP-PCL3, HP-PCL5 | hp | hp.h |
rastertolabel | CPCL, Dymo, EPL1, EPL2, Intellitech PCL, ZPL | label | label.h |
rastertopclx | HP-RTL, HP-PCL3, HP-PCL3GUI, HP-PCL5, HP-PCL5c, HP-PCL5e | pcl | pcl.h |
The optional port monitor handles interface-specific protocol or encoding issues. For example, some raster printers use the 1284.4 communications protocol.
The backend handles communications with the printer, sending print data from the last filter to the printer and relaying back-channel data from the printer to the upstream filters. CUPS includes backend programs for common direct-connect interfaces and network protocols, and you can provide your own backend to support custom interfaces and protocols.
The scheduler also supports a special 'command' file format for sending maintenance commands and status queries to a printer or printer driver. Command print jobs typically use a single command filter program defined in the PPD file to generate the appropriate printer commands and handle any responses from the printer. Figure 2 shows the data flow of a typical command job.
Raster printer drivers must provide their own command filter.
Creating New PPD Files
We recommend using the CUPS PPD compiler, ppdc(1), to create new PPD files since it manages many of the tedious (and error-prone!) details of paper sizes and localization for you. It also allows you to easily support multiple devices from a single source file. For more information see the 'Introduction to the PPD Compiler' document. Listing 1 shows a driver information file for several similar black-and-white HP-PCL5 laser printers.
Listing 1: 'examples/laserjet-basic.drv'
Using Filters
The standard CUPS raster filters can be specified using theDriverType directive, for example:
Printer Filter Cups For Macos Sierra Mac
Table 1 shows the driver types for each of the standard CUPS raster filters. For drivers that do not use the standard raster filters, the 'custom' type is used with Filter directives:
Implementing Color Management
CUPS uses ICC color profiles to provide more accurate color reproduction. The cupsICCProfile attribute defines the color profiles that are available for a given printer, for example:
where 'ColorModel.MediaType.Resolution' defines a selector based on the corresponding option selections. A simple driver might only define profiles for the color models that are supported, for example a printer supporting Gray and RGB might use:
The options used for profile selection can be customized using the cupsICCQualifier2 and cupsICCQualifier3 attributes.
Since macOS 10.5Custom Color Matching Support
macOS printer drivers that are based on an existing standard RGB colorspace can tell the system to use the corresponding colorspace instead of an arbitrary ICC color profile when doing color management. The APSupportsCustomColorMatching and APDefaultCustomColorMatchingProfile attributes can be used to enable this mode:
Adding macOS Features
macOS printer drivers can provide additional attributes to specify additional option panes in the print dialog, an image of the printer, a help book, and option presets for the driver software:
The official public repository for CUPS, an Apple open-source project widely used for printing on Linux, is all-but dormant since the lead developer left Apple at the end of 2019.
Apple adopted CUPS for Mac OS X in 2002, and hired its author Michael Sweet in 2007, with Cupertino also acquiring the CUPS source code. Sweet continued to work on printing technology at Apple, including CUPS, until December 2019 when he left to start a new company.
Asked at the time about the future of CUPS, he said: 'CUPS is still owned and maintained by Apple. There are two other engineers still in the printing team that are responsible for CUPS development, and it will continue to have new bug fix releases (at least) for the foreseeable future.'
Despite this statement, Linux watcher Michael Larabel noted earlier this week that 'the open-source CUPS code-base is now at a stand-still. There was just one commit to the CUPS Git repository for all of 2020.' This contrasts with 355 commits in 2019, when Sweet still worked at Apple, and 348 the previous year.
We asked Apple about its plans for CUPS and have yet to hear back. We also note Sweet is not counting on Apple's continued involvement. At the Linux Plumber's conference in August, Sweet spoke on the future of printing in Linux, which you can also find on video here.
'How you print today is much different than 30 years ago,' Sweet said, explaining that development continues on IPP Everywhere, which is a protocol that can be used by clients to print to networked or USB-connected printers without any special software. The firmware in the printer should do all the heavy lifting in getting the print job done, once it receives the data via IPP, and this relies on the printer manufacturers implementing the protocol correctly. CUPS implements IPP Everywhere, so the hope is the printing system can benefit from improvements to the protocol.
Even 2020 cannot bring forth the Year of Linux on the Desktop
READ MOREThe documentation and code samples for IPP Everywhere can be found here in repositories belonging to the IEEE-ISTO Printer Working Group. Sweet said he 'will be providing pull requests to Apple to incorporate these changes back into CUPS.'
Sweet is also working on LPrint, designed for the world of label and receipt printers, and PAPPL (Printer Application Framework), a C-based framework for creating printer applications that support IPP Everywhere, with a 1.0 release candidate planned soon. Note that these projects build on CUPS rather than replacing it.
If CUPS development, in effect, continues, where is Apple in all this? Till Kamppeter, leader of the Linux Foundation's OpenPrinting effort and organizer of the printing micro-conference at Linux Plumbers, commented on Larabel's observations, pointing to this post where he says: 'Due to dormant upstream development, we have discussed to creating a temporary fork on OpenPrinting [of CUPS] for bug fixes and distribution patches, and Michael Sweet has done it now.'
The 'dormant' bit refers to Apple's CUPS project; and OpenPrinting's CUPS fork is here. Kamppeter added that 'in case that Apple does finally cease CUPS development, I will continue the project together with Michael Sweet on OpenPrinting. CUPS will still be needed in Linux.' In other words, it's forked, and it will stay forked unless Apple returns from whichever outer Earth orbit it is in.
CUPS, Kamppeter continued, 'will drop PPD file support soon.' PPD is the old printer definition file used since way back when to describe printer capabilities for CUPS. At that point, 'classic drivers consisting of PPDs and filters are not supported any more, and Printer Applications are the only form to supply printer drivers … the manufacturers are aware of the deprecation and soon removal of PPDs and the new standard way of Printer Applications,' he said.
macOS printer drivers can provide additional attributes to specify additional option panes in the print dialog, an image of the printer, a help book, and option presets for the driver software:
The official public repository for CUPS, an Apple open-source project widely used for printing on Linux, is all-but dormant since the lead developer left Apple at the end of 2019.
Apple adopted CUPS for Mac OS X in 2002, and hired its author Michael Sweet in 2007, with Cupertino also acquiring the CUPS source code. Sweet continued to work on printing technology at Apple, including CUPS, until December 2019 when he left to start a new company.
Asked at the time about the future of CUPS, he said: 'CUPS is still owned and maintained by Apple. There are two other engineers still in the printing team that are responsible for CUPS development, and it will continue to have new bug fix releases (at least) for the foreseeable future.'
Despite this statement, Linux watcher Michael Larabel noted earlier this week that 'the open-source CUPS code-base is now at a stand-still. There was just one commit to the CUPS Git repository for all of 2020.' This contrasts with 355 commits in 2019, when Sweet still worked at Apple, and 348 the previous year.
We asked Apple about its plans for CUPS and have yet to hear back. We also note Sweet is not counting on Apple's continued involvement. At the Linux Plumber's conference in August, Sweet spoke on the future of printing in Linux, which you can also find on video here.
'How you print today is much different than 30 years ago,' Sweet said, explaining that development continues on IPP Everywhere, which is a protocol that can be used by clients to print to networked or USB-connected printers without any special software. The firmware in the printer should do all the heavy lifting in getting the print job done, once it receives the data via IPP, and this relies on the printer manufacturers implementing the protocol correctly. CUPS implements IPP Everywhere, so the hope is the printing system can benefit from improvements to the protocol.
Even 2020 cannot bring forth the Year of Linux on the Desktop
READ MOREThe documentation and code samples for IPP Everywhere can be found here in repositories belonging to the IEEE-ISTO Printer Working Group. Sweet said he 'will be providing pull requests to Apple to incorporate these changes back into CUPS.'
Sweet is also working on LPrint, designed for the world of label and receipt printers, and PAPPL (Printer Application Framework), a C-based framework for creating printer applications that support IPP Everywhere, with a 1.0 release candidate planned soon. Note that these projects build on CUPS rather than replacing it.
If CUPS development, in effect, continues, where is Apple in all this? Till Kamppeter, leader of the Linux Foundation's OpenPrinting effort and organizer of the printing micro-conference at Linux Plumbers, commented on Larabel's observations, pointing to this post where he says: 'Due to dormant upstream development, we have discussed to creating a temporary fork on OpenPrinting [of CUPS] for bug fixes and distribution patches, and Michael Sweet has done it now.'
The 'dormant' bit refers to Apple's CUPS project; and OpenPrinting's CUPS fork is here. Kamppeter added that 'in case that Apple does finally cease CUPS development, I will continue the project together with Michael Sweet on OpenPrinting. CUPS will still be needed in Linux.' In other words, it's forked, and it will stay forked unless Apple returns from whichever outer Earth orbit it is in.
CUPS, Kamppeter continued, 'will drop PPD file support soon.' PPD is the old printer definition file used since way back when to describe printer capabilities for CUPS. At that point, 'classic drivers consisting of PPDs and filters are not supported any more, and Printer Applications are the only form to supply printer drivers … the manufacturers are aware of the deprecation and soon removal of PPDs and the new standard way of Printer Applications,' he said.
Is Apple neglecting its open-source responsibilities, despite these big changes in the world of Linux printing? Since the key people working on these projects seem uncertain of Apple's commitment, it does look that way, but who knows, it could change any time and the CUPS project could come back to life. ®