PHP Print IPP

Easy printing with PHP on server side under Unix®/Linux®/MacOS-X®

PHP::PRINT::IPP Homepage

Current version

current version is 0.81. download

download debian package

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

PHP::PRINT::IPP is distributed under GNU LGPL, test files under GPL, test script and examples in documentation under BSD license, documentation under both GNU FDL (with no invariant section, no front-cover and no back-cover) and GNU GPL.
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

Documentation and examples will be found in "/documentation" directory in tarball. See also "INSTALL".
On line user documentation is here.
Installation instructions are here.

Support

Post your requests to the mailing list phpprintipp@nongnu.org.

Mailing list archives will be found here.

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

It is inspired by "CLASS: PHP Print", by Mick Sear, but there is no more code of it in. If you search for a very basic print client, uses it :) PrintSendLPR is available at http://www.phpclasses.org/browse/package/2540.html (license: LGPL).

Tested Print servers

  • CUPS
  • TRENDnet TE100-P1P
  • EPSON EpsonNet (C823782)

Back to top


Valid XHTML 1.1 Valid CSS!