The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Net::CUPS - Common Unix Printing System Interface

SYNOPSIS

  use Net::CUPS;

  my $cups = Net::CUPS->new();

  my $printer = $cups->getDestination( "lj4200dn" );

DESCRIPTION

Net::CUPS is an object oriented interface to the Common Unix Printing System.

METHODS

getDestination

my $printer = $cups->getDestination( $printer_name );

This method takes the name of the printer to acquire. If the printer does not exist it will return nothing.

getDestinations

my @printers = $cups->getDestinations();

This method will return an array of destinations currently configured on the cups server.

getPassword

my $password = $cups->getPassword( $prompt );

Method to retrieve the password from the user via the password callback.

getPPD

my $ppd = $cups->getPPD( $name );

Returns a Net::CUPS::PPD object for the default printer or for the specified printer or class.

getPPDMakes

my $makes = $cups->getPPDMakes();

Returns an arrary of scalers holding the names of all the makers (e.g. HP or Lexmark) of PPD files installed on the CUPS server

getAllPPDs

my $ppds = $cups->getAllPPDs();

Returns an array of scalers with the maker and model of all the PPDs installed on the CUPS server

getPPDFileName

$cups->getPPDFileName($ppd_name_and_make);

Returns the file name of the PPD specified by the name and make as found in the array returned by getAllPPDs. The file name is used by addDestination and is relative to where the CUPS server is instructed to look (e.g /usr/share/ppd).

getServer

my $server_name = $cups->getServer();

A method to return either the hostname or the IP address of the active print server.

getUsername

my $username = $cups->getUsername();

This method will return the current username associated with the CUPS transaction.

requestData

my $result = $cups->requestData( $request, $resource, $filename );

Send an IPP request to the server. This function is based off the C CUPS function cupsDoRequest and cupsDoRequestFile. The $filename is optional.

setPasswordCB

$cups->setPasswordCB( $function )

Method to set the callback function to be used by getPassword.

setServer

$cups->setServer( $server_ip );

This method will change the current cups server to another hosts.

setUsername

$cups->setUsername( $username );

A method to change the username associated with CUPS interaction.

deleteDestination

$cups->deleteDestination( $destination_name );

A method to delete an existing destination

addDestination

$cups->addDestination( $name, $location, $printer_info, $ppd_name, $device_uri) A method to create a new destination. The $ppd_name variable should be the one returned for that printer by the getPPDFileName method. It will be relative to where the CUPS server is configured to look for PPD files (e.g. /usr/share/ppd).

SEE ALSO

Net::CUPS::Destination, Net::CUPS::PPD, Net::CUPS::IPP

SUPPORT

Net::CUPS is currently maintained by Stefan Seifert <NINE@cpan.org>. The Github repository for this project is at https://github.com/niner/perl-Net-CUPS. Pull requests are welcome.

AUTHOR

Dracken Technology, Inc. (http://www.dracken.com/)

ACKNOWLEDGEMENTS

Aike Reyer <aike@users.sourceforge.net> supplied the password handling code.

Mark Gannon <mark@truenorth.nu> supplied the code for PPD acquisition, destination creation and destination deletion.

COPYRIGHT AND LICENSE

Copyright (c) 2003-2005 David Hageman

Copyright (c) 2006-2009 Dracken Technology, Inc.

All rights reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.

CUPS, the Common UNIX Printing System, the CUPS logo, and ESP Print Pro are the trademark property of Easy Software Products.