10.2. Printing with AirPrint

Devices running macOS 10.7 and higher or iOS 4.2 and higher (like iPad, iPhone and iPod Touch) can use AirPrint® to print to SavaPage.

Note

AirPrint maps to the reserved Queue /airprint.

Important

Avahi needs to be installed on your GNU/Linux host. See Section 1.2.1.6, “Avahi”.

To setup SavaPage AirPrint printing follow the steps described in the sections below.

10.2.1. Step 1: Enable IPv4 in Avahi

Since SavaPage uses IPv4 for IP Based Authentication IPv4 should be enabled in the avahi-daemon. This is normally the case, but you can check by editing the Avahi configuration file:

sudo vi /etc/avahi/avahi-daemon.conf

Make sure the use-ipv4 settings is as follows:

use-ipv4=yes

When you made changes to the configuration file, restart the daemon as follows:

sudo service avahi-daemon restart

10.2.2. Step 2: Create AirPrint Queue

Create a SavaPage Queue (see Section 4.7, “Queues” ) with a comprehensible URL path mnemonic like airprint. It is important not to check the Trusted option, since the queue should be untrusted to enforce IP Based Authentication. This is needed because iOS printing is unauthenticated, i.e. all print jobs have guest as originating user. IP Based Authentication finds the real user by matching the IP address of the print request with the authenticated user in the SavaPage Web App Session on the same IP address.

10.2.3. Step 3: Create Avahi Service File

Copy the /opt/savapage/server/examples/linux/avahi/savapage.service file to your personal home directory.

savapage.service is an Avahi service file with annotations explaining how to adapt it to your own situation. Follow the $Customize$ annotation to insert your settings. Probably, you can just accept the defaults.

Copy your tailored service file to Avahi, with this command (assuming the source file resides in your home directory):

sudo cp ~/savapage.service /etc/avahi/services

Check if Avahi has published the SavaPage printer as intended by typing this command:

avahi-browse -a -t

Assuming your GNU/Linux host is called savapage and you named your Avahi print service SavaPage, you should find entries in the output like this :

+   eth1 IPv4 SavaPage @ savapage     Internet Printer     local  1

1

The mDNS published SavaPage internet printer on host savapage for the IPv4 interface.

To check if the SavaPage DNS printer is can be found, use this command on a macOS or GNU/Linux workstation :

ippfind --remote

Assuming your GNU/Linux server host is called savapage in the Avahi service file, you should see this entry as output:

ipp://savapage.local:8631/printers/airprint

Note

Configuring Avahi to use ipps failed so far. Service file settings as below have no effect:

<type>_ipps._tcp</type>
<subtype>_universal._sub._ipps._tcp</subtype>
<port>8632</port>

ippfind does not identify the service.