Getting started with SavaPage: questions and answers

Hi @rijkr, thank you, glad to be here. Unfortunately I can’t log in with any of users, as I understand username is sAMAccountName and when I go to user section->information-> it’s in the bold on top of the card and it’s the right AD username.

@mvd The first step for user authentication is retrieving the user by “username”. Since you were able to synchronize Active Directory users with SavaPage I assume this step succeeds. To be sure, check for messages in /opt/savapage/server/logs/server.log

If the user is found, the next step is to create an LDAP context with the following Security properties:

  • Principal : user DN as retrieved in the first step.
  • Level : “simple”.
  • Credentials: clear-text password.

If creation of this context succeeds the user is considered “authenticated”. If not, the username/password combination is considered invalid.

Because you are not able to authenticate any user, it could be that your AD does not support a “simple” security level. Alternatives are “none” and “strong”, but both are not supported by SavaPage right now. A “strong” security level will probably involve more advanced Credentials. Please let me know if your AD imposes specific requirements in that regard.

@rijkr as it comes to AD when I tick “Use SSL” and use Port 636 I get
test] Starting user synchronization…
[test] User synchronization error: simple bind failed: 10.10.160.151:636 [PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target].
without SSL it synchronize fine. I did some test with LDAP Browser and I can connect to LDAP with SSL/636 without a hassle.

@mvd Could it be that your AD uses a self-signed certificate? In that case you need to tick the “Trust Self-Signed Certificate” checkbox in the User Source - LDAP section.

First, I’d like to say SavaPage is simply AMAZING. I’m blown away by this project and the capabilities it comes with out of the box.

I was able to set it up relatively easily. My Macs and Windows machines also automatically detect SavaPage as a printer on the network. I am able to print to it, and I can see the thumbnails of my print jobs in the web interface.

I am also able to see all my HP printers on the network if I SSH to the SavaPage machine, and use the “avahi-browse” command line tool.

The part I’m not clear about is how to add those printers to SavaPage and expose them to users. When I go to Proxy Printers that page is empty and there’s nothing in there that shows how to add network printers. I checked the manual time and time again, maybe I missed something, but I just can’t find a chapter that explains how to make SavaPage talk to a physical printer.

Eventually once I get that part sorted, my plan is to put printers in a separate VLAN based on their MAC address, and force all printing to happen exclusively through SavaPage. I also plan to integrate it with KeyClock.

Thanks in advance for any help offered, and again, many thanks for this amazing project!

Hi @aric , thanks for sharing your enthusiasm. Welcome to SavaPage!

Proxy Printers are picked up from CUPS. Note that printers that advertise themselves via DNS-SD / Bonjour / Zeroconf (like your HP printers) are not automatically part of CUPS. You can easily check: printer devices that show up with the lpinfo -v command do not show up as printer with the lpstat -v command.

Add your DNS-SD printers in CUPS by selecting them there from the list of “Discovered Network Printers”. Make sure to select a Model that uses CUPS filtering and is compatible with your printer. Do not select an IPP Everywhere variant as Model, as this will give you an unusable “Local Raw Printer” throughput without filtering and print job options, which is unusable for SavaPage.

After you add/delete/modify CUPS printers you need to sync them with SavaPage: simply push the Synchronize button at the top of the Proxy Printers list of the Admin Web App.

Now that your CUPS printers are visible in SavaPage as Proxy Printer, you must first configure their Media Sources and Costs before they can be selected for print jobs.

There is another issue you need to be aware of. SavaPage is standardized on IANA Registered IPP Attributes and uses the CUPS IPP interface to retrieve printer capabilities. Since vendor specific PPD option keywords are generally not mapped to IPP attributes by CUPS, make sure that each vendor specific PPD option is mapped to its IPP counterpart. You can read all about this in the User Manual PPD Extensions Appendix. Please consult and reply to this post if you have any questions about PPDE files.

Indeed, placing your DNS-SD printers in a VLAN, which only the SavaPage server can access, prevents these printers from advertising themselves on user devices. This forces all users to use DNS-SD printers only from the SavaPage User Web app.

1 Like

Hi @rijkr ,

I was trying to setup Savapage on a VM for testing. During working through the Savapage manual I successfully added my printer (Canon Pixma MG5750, WiFi) in CUPS. I could also print a test page from CUPS. I see my printer in the proxy printer list in Savapage but with the warning “Configuration needed”. Just as you suggested crege2 I tried to configure at least one media source but I’m not able to do that.

In the manual, Figure 4.59, I should see some media source options like “A4 – yellow”, “A4 – white” etc. but I don’t see those options and I can’t find a way to add a media source. What am I doing wrong? Can you help me?

I tested Savapage in a virtual machine, bridged to my local LAN. Tried on Ubuntu Bionic and Focal Fossa.

Hi @remco011 , welcome! It looks like the “media-source” (paper trays) of your printer is not recognized by default. Please take a look at (and reply to) How to solve unrecognized Proxy Printer capabilities .

1 Like

Thank you. That worked beautifully, and I’m able to print nicely! I wish this was in the manual, I couldn’t find something as simple and concise in the manual the way you explained it here. You should consider pasting this response into the manual :slight_smile:

Some of my users are wondering if they can be assigned a default printer, so they don’t have to go to their printer portal to print their jobs (they want prints to happen automatically).

Is this an available feature?

Hi I have installed savapage in my server for monitoring my printer Lexmark Mx310 series and Lexmark CX921de series as i am giving print from windows pc i am getting the following error which i have mentioned below. Can anyone help me to solve this am i making any mistake here

  1. IP Print data from [192.168.19.53] is not PostScript. Header pk
  2. My printer has been added through CUPS but in my savapage proxy printers it is showing Configuration Needed.

@aric Yes, I had already realized that and created a section in the User Manual called DNS-SD Printers :slight_smile: Can you please review?

As a general rule, automatic print to public printers is not a good idea. It leads to paper waste (prints not picked up) or privacy breaches (prints laying around a long time for everyone to read). In those cases Secure Printing is the way to go: see Personal Print - Secure Scenarios.

There are, of course, exceptions when printers are secured in a physical private space (a print room) where print jobs are handled by a dedicated officer (print job operator). This case is covered by SavaPage through the Job Ticket Print scenario.

If you place a Network Card Reader (NFC authentication) next to a printer you can implement a Fast Print Mode follow-me printing scenario. If a network printer is placed besides and restricted to a workstation, automatic printing can be achieved with the IPP Routing scenario. Beware, these are advanced topics.

Welcome @Gowtham !

  1. This is a matter of picking the right PostScript driver. Take a look at Which PostScript driver to use in Windows? - #4 by rijkr
  2. See my reply How to solve unrecognized Proxy Printer capabilities - #5 by rijkr

I was hoping to be able to use this in a public library setting, but cannot figure out if there is a way to prevent the print from printing out without the use of some form of print release station. I would like where staff have to release upon receipt of payment.

Also does any library currently use this?

@steveinbuffalo Hi Steve, welcome to SavaPage !

There are basically two ways you can do this. For the first one, each user (patron) that needs to print must be known in SavaPage. Users can than login to the User Web App and upload their documents (pdf, txt, docx, …) or graphics (jpeg, png, bmp, …) and create a so called print job ticket. Tickets are handled by a Job Ticket Operator, i.e. a staff member at the reception who prints the document and collect the costs. See Job Tickets Web App .

In the second scenario users can just email the document to be printed as file attachment to a special purpose email address. They get a reply with a Mail Print Ticket number. A Mail Ticket Operator at the library can, at the request of the user, collect the document by ticket number and e-mail address, print the document and collect the costs. This scenario is currently in beta testing by a US public library and is not yet described in the user manual. It is an extension of the Mail Print scenario. You are welcome to join as beta tester. Send a message to support@savapage.org and I’ll help you on your way.

I can see how this would work. I got it all set and working with internal account. :slight_smile: If only it has SIP login (library systems use SIP for librarycard/pin logins to check things out, used pub terminals etc.

Is there a way for users to change their email address on file? I see where they can reset their password.

I created an issue to add an option for internal users to set/change their email address.

@steveinbuffalo SavaPage does not support SIP2, but you could use a SIP2 communication library for PHP to create a SIP2 authentication front-end for SavaPage. Once authenticated by SIP2 you can use our XML-RPC method onetime-auth.createToken to automatically login to the User Web App. You can see how this is done in our PHP solution created for SSO to SavaPage from Moodle: see moodle-block_savapage.

All I get back is nil instead of a token… <ex:nil> Not sure what I’m doing wrong.

I’ll try again later, or try for a different angle.

@steveinbuffalo Did you set the TTP API key in the web-login.ttp.apikey configuration property? Also check web-login.ttp.enable = Y and the expiration criterion in milliseconds as set in the web-login.ttp.token.expiry-msecs configuration property. See User Manual.

Last but not least, check /opt/savapage/server/logs/server.log for error details.