Electrical-Forenics Home ray@RayFranco.com                       601.529.7473
   © Dr. Ray Franco, PhD, PE  -  208 Fairways Dr., Vicksburg, MS 39183

Update on 2/27/2023.

Printer Acronyms:

Conventinal Printers Drivers

When personal computers were first introduced, there was a serial RS232 port and a parallel port for connecting peripheral such as printers. The printers were black and white. ASCII Characters were sent over these ports to the printer. The character font was fixed, and one line of characters was printed at a time. With the introduction of dot matrix printers, you could change the font and print graphics. This was done by special codes sent to the printer. These were the predecessors to printer Page Description Languages (PDLs).

Modern PLDs describe the object's geometric and color space rather than the actual bits that make up the object [1]. An object can be a character, a shape (line, circle, arc) or image. The printer then decides how to render the object on the page.

The problem with PDL's is that there are lot of them, and the majority of them were developed by manufacturers and are proprietary. Wikipedia list 45 notable PDL's and only one of them, the Portable Document Format (PDF), is an open standard [2]. Two poplular PDLs are PostScript (PS) and the Printer Command Lanague (PCL). PS was developed by Adobe and PCL by Heward Packard (HP).

Another problem with PDL's is that the printer manufacture had to supply software drivers so that computer could use their PDL. The software drivers were more than text files. They contained complied binary code. The software drivers were different for different operating system (Windows, macOS, Linux), and the code had to be complied for difference computer architects (Intel, Motorola, IBM PowerPC).

Driverless Printers

Apple's iPad was the first tablet computer. The iPad had an Arm processor (architecture), and software could only be loaded on it via Apple's App Store. A major complaint was that you could not print from it. In 2010, Apple introduced AirPrint with 12 compatible HP printers [3]. These were the first driverless printers.

Driverless printers are Internet printers that do not require a print driver. The following describes how driverless printer work [4]:

There are currently four driverless printer standards. They only differ in which PDLs are supported [5].

To meet one of driverless printer standards, the printer does not have to natively implement all of the PDLs in the standard. it just has to implement the failback PDL. That is, a printer could implement one of the raster PLDs and meet the standard.

According to Debian, this is intentional because the raster formats are simpler and require less printer resources than the higher-level language PLDs [6]. If a driverless printer does not natively implement application/pdf, the client will convert a text file to a raster format and send it to printer [7].

With the fallback PDLs being raster, are we not back to near where we started from? That is, are we sacrificing print quality for speed and the convenience of driverless printers? Furthermore, there does not appear to be a way of determining what PDLs the printer native supports without having access to the printer! It is not given in printer specification sheets nor manuals. If you have access to a printer, you can interrogate it with the Linux command [8][9]:

avahi-browse -rt _ipp._tcp

The following reformatted output (added line breaks) is from my 2017 HP Pro 6970 All-in-One printer:

=  eth0 IPV4 HP OfficeJet Pro 6970 [DEF7B5F]
txt = [
 "Scan=T"
 "Duplex=T"
 "Color=T"
 "UUID=05c59c15-18f5-5a0e-e211-577d77a158ab"
 "Fax=T"
 "rfo=ipp/faxout"
 "TLS=1.2"
 "mopria-certified=1.3"
 "note="
 "adminurl=http://HPEC8EB5DE7B5F.local./#hId-pgAirPrint"
 "mac=ec:8e:b5:de:7b:60"
 "priority=20"
 "usb_MDL=OfficeJet Pro 6970"
 "usb_MFG=HP"
 "product=(HP OfficeJet Pro 6970)"
 "ty=HP OfficeJet Pro 6970"
    "URF=CP1,MT1-2-8-9-10-11,PQ3-4-5,RS300-600,SRGB24,OB9,OFU0,W8-16,DEVW8-16,DEVRGB24-48,ADOBERGB24-48,DM3,FN3,IS1,V1.4"
 "kind=document,envelope,photo,postcard"
 "PaperMax=legal-A4"
 "rp=ipp/print"
 "pdl=application/vnd.hp-PCL,image/jpeg,application/PCLm,image/urf,image/pwg-raster"
 "qtotal=1"
 "txtvers=1"
]

The first highlighted line showed that it is Mopria certified. The second highlighted line indicated that it is an AirPrint printer. The Third highlighted line showed the PLDs that that the printer supports.

Planned Additions:

Apple Products support Wi-Fi Direct features except that have chosen to rebrand it to AirDrop and AirPlay What is Wi-Fi Direct and how do you use it on Android? . I need to investigate this, as I know AirDrop and AirPlay use bluetooth to establish the connection.

Dell C1760cn Color Laser Printer

The Dell C1760cn is a rebranded Xerox Phaser 6000b color laser printer.

Dell's website has Windows x86_64 and macOS drivers. Windows 10 installed the latest driver automatically with me having to do anything.

Xerox's website has drivers for Windows, macOS, and Linux. The Linux Debian driver appears to be only 32-bits. The RPM Linux driver is for 32/64 bits. I assume the Linux drivers are compiled for the Intel/AMD x86 architecture. From what I have read on the Internet, the drivers will not work on a Raspberry Pi 4, which is an ARM architecture.

The printer does have an Embedded Web Servicer (EWS) interface. Just type the IP address of the printer into a web browser.

I have been able to confirm that the PDL for this printer is HBPL (Host Based Printer Language). I believe this means; it is using the host processor to do a lot of the work that the printer's processor normally would do. The printer's processor only runs at 384 MHz. One of Xerox's drivers say GDI. Which is an old Microsoft Graphical Device Interface. I have also seen the PDL as GDI(HBPL) in Internet searches.

I get no output, or it hangs when I run:

avahi-browse -rt _ipp._tcp

I do not know if I can SSH into this printer, or if I can install or update any Linux packages.

I need to install the macOS printer driver on my MacBook Air M2 (ARM architecture). Determine if it is running natively on the M2 silicon or if it uses Apple's Rosetta software to emulate the x86_64 instruction set. If it is running natively on M2 silicon, there may be a way to port it to the Raspberry ARM. Both macOS and Linux uses CUPs, but they may not be the same CUPS.

One of the things you need to build a driver is a PostScript Pinter Description (PPD file). You should be able to extract this file from any of the Linux driver package or the macOS driver. There is also a way to convert an RPM driver to Debian using "alien" [].

Links:

  1. Dell Community - Linux C1760nw
  2. Codefucius - Linux C1760nw
  3. Raspberry Pi Forums - Dell C1760nw
  4. Using HBPL Printer in Linux.
  5. How to Install RPM Packages on Debian 11 Bullseye.

Printing from your Mobile Phone

Apple's AirPrint
 
Apple's AirPrint is a driverless printing protocol. It was introduced in 2010. It is an extension of the Internet Printing Protocol. It was developed for Apple's IOS and MAC OS. In most Linux distributions, Airport support should be automatic with the default printing subsystem since version 1.4.6 CUPS severs.

For AirPrint on Linux, you probably need the install the package cups-browsed to read Apple's Bonjour.

Linux CUPS does not require a print driver to print to AirPrint or IPP Everywhere printers.

After the client discovers the printer, it sends a

Wi-Fi Direct Printing
 
Wi-Fi Direct printing allows your Wi-Fi cable device i.e.smart phone, tablets or computer to make a Wireless connection directly to a printer with using a wireless router or access point. All Microsoft Windows 10 and 11 suport Wi-Direct printing. All Linux-based platforms support Wi-Fi Direct. Apple devices, such as the iPhone and iPad do NOT support WiFi Direct. They use AirPrint, AirDrop and AirPlay.

Google's Cloud Printing
 
Built into Android devices is Google Cloud Printing. It allows you to print files from any device anywhere - whether you are on the same Wi-Fi network as the printer or not.

ePrint
 
ePrint is a secure cloud based service that lets you print from anywhere using an email account and active internet connection. Setting this up varies from manufacture to manufacturer. It works by assigning an email address to the printer. HP's ePrint work by installing HP Smart on you phone via Apple App Store or Google Play or on your computer via Microsoft or Mac App Store. For Linux there is EPrints which is free from https://www.eprints.org/uk/.

References:

  1. Page Description Language (PDL) - WhatIs.com
  2. Page Description Language - Wikipedia
  3. Apple's AirPrint - Wikipedia
  4. Workflow of Driverless Printers
  5. Driverless Printing Standards - OpenPrinting
  6. CUPS Driverless Printing: PDLs for Driverless Printing - Debian Wiki
  7. CUPS Driverless Printing: PPD Generator - Debian Wiki
  8. CUPS Driverless Printing Miscellaneous - Debian Wiki
  9. CUPS AirPrint: Browsing an AirPrint Bonjour Broadcast - Debian Wiki
  10.  
  11. Wikipedia CUPS
  12. https:/www.cups.org
  13. Dell 1760n - Rpi Forum
  14. CUPSAirPrint - Debian Wiki
  15. Printer Command Language (Wikipedia)
  16. Avahi - Debian Wiki
  17. What is Wi-Fi Direct - Digitaltrends
  18. What is Wi-Fi Direct and Its Benifits - HP
  19. Brothers Print Drivers
  20. HP-PCL vs Adobe Postscript
  21. DNS Service Discovery (DNS-SD)
  22. question: what's the image/urf #4888
  23. OpenPrinting CUPS Filters - cups-browsed - Debian Package
  24. OpenPrinting CUPS
  25. Apple's image/URF
  26. CUPSNewArchitecture - Debiabn Wiki
  27. Adobe Embedded Print Engine FAQ
  28. Adobe PDF, PostScript (PS) and Embedded PS (EPS) -Ohio State University

Brother's Inkjet MFCj4335DW Printer

References