logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Net::CUPS - Common Unix Printing System Interface

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.

Author

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

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).

Name

       Net::CUPS - Common Unix Printing System Interface

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.

Synopsis

         use Net::CUPS;

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

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

See Also