PHP::PRINT::IPP Homepage
Current version
current version is 0.81. download
What is PHP::PRINT::IPP ?
PrintIPP or PHP::PRINT::IPP is a set of PHP classes (PHP5) which implements an IPP (Internet Printing Protocol) client.
PHP::PRINT::IPP, is able to print (send to the IPP server) both strings and files, cancel jobs, as well as perform all RFC2911 operations.
There is also a CUPS™ sub-class for the Common Unix Printing System server specific stuff.
PHP::PRINT::IPP is distributed under GNU LGPL. Thus, it is a "Free Software".
PrintIPP ou PHP::PRINT::IPP est un ensemble de classes PHP (PHP5) implémentant un client IPP (Internet Printing Protocol).
PHP::PRINT::IPP, permet l'impression sur un serveur IPP de fichiers ou de chaînes (strings), et l'annulation des jobs. IL réalise toutes les opérations obligatoires et optionnelles décrites dans la RFC2911.
Est également disponible une sous-classe CUPS™, avec des opérations spécifiques à ce serveur.
PHP::PRINT::IPP est distribué sous licence GNU LGPL. C'est donc un « Logiciel Libre ».
What is BasicIPP ?
BasicIPP is the base class of PrintIPP, a simplified version, with only one operation: PrintJob
Loaded with HTTP back-end, it cots only 796kBits.
The only server's response parsing in BasicIPP is the test on successfull operation or not.
Memory cost
CupsPrintIPP (the whole class) costs ~2.5MBits ("real": 1.6Mbits), while BasicIPP (the base class) costs ~830kBits ("real": 786Kbits).
Memory cost is measured with furnished HTTP back-end.
Memory allocation is measured with CLI on Debian Sarge, "php testfiles/test_exceptions.php"
Status
PRODUCTION/STABLE.
Currently, it is able to print both strings and files on an IPP server, parses server's response, cancels jobs, and perform all REQUIRED and OPTIONAL operations from RFC2911. CUPS extension have following operations: cupsGetDefaults (get default printer attributes), cupsAcceptJobs, cupsRejectJobs (reject jobs for given printer), cupsGetPrinters (get printers list).
Limitations
- It is currently tested only with CUPS and a few print servers. Please report if it is working with other servers to the phpprintipp@nongnu.org mailing list.
- SSL/TLS works with CUPS but is not capable of upgrade from standard HTTP connection. If you need TLS with CUPS-1.1, please set up "SSLPort" to a dedicated port in cupsd.conf (CUPS 1.2 seems to work well without that setting).
Known bugs
None. Please report any bug or feature request to https://savannah.nongnu.org/projects/phpprintipp
Depends
It depends on http_class.php, which is shipped with. http_class.php is stable enough, but handles only "Digest" and "Basic" authentication, and is not capable of "upgrade" operation.
So you can use:
- "CLASS: HTTP protocol client" (currently, do not handle large files),
- "HTTP protocol client" can be found at
http://www.phpclasses.org/browse/package/3.html.
License: BSD. - "CLASS: Simple Authentication and Security Layer" for authentication.
- SASL backend can be found at
http://www.phpclasses.org/package/1888.html.
License: BSD.
Distribution
It is complex, but logical :)
Download
Tarballs can be found here.
You'll find Debian packages here.
Anonymous cvs: cvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/phpprintipp co phpprintipp cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/phpprintipp co phpprintipp
You can also browse CVS at http://cvs.savannah.gnu.org/viewvc/?root=phpprintipp
Documentation
On line user documentation is here.
Installation instructions are here.
Support
Post your requests to the mailing list phpprintipp@nongnu.org.
Tests / examples
Various examples are given in "./testfiles" tarball directory.
There are also working examples in "./bin" and "./www" directories of the tarball, included PHP/HTML web interfaces and a CLI one.
Origin
Tested Print servers
- CUPS
- TRENDnet TE100-P1P
- EPSON EpsonNet (C823782)

