[[!meta title="🖨 How to setup a network printer with Webconverger"]]
Holding down the [Control] and [p] keys on your keyboard gives you the printing
dialog. Or you can use the showprintbutton
[[API]] to show a print icon to
your users.
Mozilla Firefox printing guidelines can help you improve prints.
For our customers, please print out the "Printer Settings" report and send it to us (a good capture from your mobile is usually sufficient) together with your printer query.
the printer= API has syntax like so:
printer=printer name,device URI,driver URI
For example a Ricoh Aficio SP 4310N with PPD on IP 192.168.1.5 might be setup like so:
printer=lab1,http://192.168.1.5/printer,http://prefs.webconverger.com/2013/ricoh.ppd
A Dell B2360dn laser printer example could be:
printer=DellPrinter,socket://10.0.6.34,http://prefs.webconverger.com/2015/Dell_B2360d-dn_Laser_Printer.ppd
Instead of specifying a remote PPD, you should ideally use the internal (generic) drivers: "drv:///sample.drv/generpcl.ppd" (older PCL) or "drv:///sample.drv/generic.ppd" (Postscript) as described by lpinfo -m.
For example a network printer 192.168.1.10 named "helpdesk" with dns name printer is very likely to have some form of PCL support:
printer=helpdesk,socket://printer,drv:///sample.drv/generpcl.ppd
However if your printer supports PostScript (it really should!), you might find
using the "Generic PostScript Printer" driver drv:///sample.drv/generic.ppd
result in better quality prints. Modern printers might support
lsb/usr/cupsfilters/Generic-PDF_Printer-PDF.ppd
which one can think of as a
modern form of "postscript".
You can have multiple printer=
lines and hence give your users several
printers to print to.
Buy a printer with a network port. These printers are generally more expensive and generally have Postscript/PDF printing support built in. Some do not have a print server or are simply buggy, so make sure you purchase it with a good exchange / refund policy.
http://www.cups.org/documentation.php/network.html
Discovering the "device URI" can be alarmingly difficult. Usually
socket://$PRINTER_IP_ADDRESS
will probably work. If in doubt send your
printer setup page
to support.
Buy a printer and attach it to a MacOSX / Ubuntu / Windows PC. Proceed to install drivers and most importantly the CUPS print server software. Then configure the CUPS server to be shared upon the network.
Add your printer to the client using the printer= API, using the an appropriate device URI.
pref("print.print_headerleft", "");
pref("print.print_headercenter", "");
pref("print.print_headerright", "");
pref("print.print_footerleft", "");
pref("print.print_footercenter", "");
pref("print.print_footerright", "");
Notice that these settings have no effect when printing a PDF.
Or just add to your configuration: prefs=http://prefs.webconverger.com/2015/no-header-or-footer.js
pref("print.print_paper_name", "na_letter");
pref("print.print_paper_size_type", 1);
pref("print.print_paper_size_unit", 0);
pref("print.print_paper_width", " 8.50");
pref("print.print_paper_height", " 11.00");
Printing to a PDF file to a remote machine on your network
The cups-pdf package allows you to setup a "Virtual Print" server on your network that write out PDFs on your server's spool directory.
This is useful for archiving, debugging and allowing you to manually check what does and does not get printed.
Assuming you have a permissively configured CUPS server (not Webconverger, an Ubuntu install for example) with cups-pdf installed, you need to figure the IP address or name (e.g. 192.168.0.1) of your print server, that can be accessed by your clients. To find the device URI of your CUPS printer, it's the "Queue Name" URL in the Administration Tab → Manage Printers, see the highlighted device URI screenshot.
Once you know the printer's device URI, you then setup your Webconverger clients like so:
printer=PDF,http://192.168.0.1:631/printers/Virtual_PDF_Printer,lsb/usr/cupsfilters/Generic-PDF_Printer-PDF.ppd
On the print server, you should be able to see "Send-Document successful-ok"
whilst viewing the log like so tail -f /var/log/cups/access_log
.
https://fedoraproject.org/wiki/How_to_debug_printing_problems
Assuming you are running a Virtualbox instance, sharing a bridged adaptor. On the host 192.168.1.3 with the Virtualbox on 192.168.1.136:
sudo tcpdump -w /tmp/foo.pcap -s 0 -n -i wlan0 dst 192.168.1.136 and not port 53
wireshark -r /tmp/foo.pcap
lpstat -t
is a good way to list CUPS printers to see how they are configured on a running Webconverger system.
Use cups-bsd
to spool a job from the command line using lpr
.