Lexmark Printer Driver
|
|
Bookmark Lexmark Printer Driver |
Lexmark 1039603 - Roller ASSY Driver Optra NewDetails
Brand: LEXMARK
Part Number: 1039603
Here you can find all about Lexmark Printer Driver, for example manual and review. You can also write a review. [ Report abuse or wrong photo | Share your Lexmark Printer Driver photo ]
Manual
Preview of first few manual pages (at low quality). Check before download. Click to enlarge.
Download
(English)Lexmark Printer Driver - Software Guide Printer, size: 73 KB |
Lexmark Printer Driver
Video review
How to Download and Install a Lexmark Print Driver
User reviews and opinions
| Mendl |
1:09pm on Thursday, July 15th, 2010 ![]() |
| There is an offer from a company , that are selling of these printers with full warenties and all the usual content. Price Mail Order only | |
Comments posted on www.ps2netdrivers.net are solely the views and opinions of the people posting them and do not necessarily reflect the views or opinions of us.
Documents

Printer Drivers for UNIX & Linux Systems
www.lexmark.com
Contents
Learning about the printer drivers..7
Using the printer drivers with UNIX and Linux...7
Installing the printer drivers..8
Before installing the printer drivers....8 Supported operating systems....8 System requirements.....9 Installing on HP-UX......9 Installing on IBM AIX......10 Installing on Red Hat, Red Flag, Linpus, or SUSE Linux...11 Installing on Linspire, Debian, or Ubuntu Linux...11 Installing on Sun Solaris SPARC....11 Installing on Sun Solaris x86.....12 Finding space to install the printer drivers package....13 Removing the printer drivers package....13 Removing remaining directories.....14
Performing tasks...15
Opening the printer driver.....15 Print Drivers Setup.....15
Administrative Group...... 15 Web Browser...... 15 Paper Size...... 15 Desktop Integration...... 16 Asian Drivers...... 16 CUPS...... 16
Changing an administrative group name....16 Adding or removing a user from the administrative group...17 Creating virtual devices......17
Before creating virtual devices..... 17 Creating virtual devices using the Device Manager.... 17 Creating virtual devices from the command line.... 18
Creating a print queue.....19
Creating print queues using the Add Print Queue Wizard.... 19 Creating print queues from the command line.... 19
Changing the print queue status.....20
Changing the print queue properties....21 Working with printer aliases.....22
Introduction to printer aliases..... 22 Creating a print queue with an alias..... 22 Displaying the alias of a print queue..... 22
Working with printer classes....22
Introduction to printer classes..... 22 Creating a class...... 23 Adding to a class...... 23 Removing a queue from a class..... 23
Managing printer groups.....23
Creating a printer group..... 23 Adding a print queue to My Printers or another printer group... 23 Removing a printer group..... 24
Printing from the command line.....24 Printing a file......25 Printing a test page.....25 Printing a duplex job......26 Printing multiple pages on one sheet....26 Printing multiple copies of a document....26 Changing the orientation of a print job.....27 Changing the Lines Per Page setting.....27 Defining the printable area when printing text files....27 Using the Print and Hold setting....28 Creating custom banner pages....29
Writing a banner program..... 29 Using a banner program..... 29
Changing a virtual device.....29 Removing a virtual device....30 Changing a print queue to print to a different printer...30 Removing a print queue.....30 Plugin Manager utility (software updates).....31
Using the Plugin Manager utility..... 31 Installing plugins from the printer driver.... 31 Removing plugins from the printer driver..... 31 Using the Plugin Manager utility from the command line.... 31
Frequently asked questions...33
Command line......33 Print queue management....33
Normal user or administrator.....34 Default settings for the program or queue....34 Related topics......35
Troubleshooting...36
The print queue is empty but my document did not print....36 Jobs appear in the print queue for an extended time...36 The print queue does not receive print jobs....37 The print queue is disabled or down....37 The file I sent to the print queue came out as garbage....38 The hostname does not resolve.....38 The printer driver is unable to find the network printer....39 My printer model is not listed.....39 Jobs are not printing......39 Additional problems.....40
Editions and Trademarks...41
Edition notice.....41 UNITED STATES GOVERNMENT RIGHTS....41 Trademarks......41 Additional Licenses.....42
Glossary....44 Index....48
Learning about the printer drivers
Using the printer drivers with UNIX and Linux
The printer drivers for UNIX and Linux systems provide many features that help ease the task of the system administrator and that help users be more productive.
Print queue and device wizardsAdministrators can use wizards to help set up virtual devices and print queues. Network printer searchThe search function makes it easier to find printers in an IP Subnet or Range. Print subsystem integrationPrinter drivers integrate with the native Print subsystem to work with existing
Installing on IBM AIX
1 Read Before installing the printer drivers on page 8. 2 Make sure you have enough disk space in /usr/lpp to install the printer driver.
3 Download the Lexmark printer driver package (print-drivers-aix5-sysv.pkg.gz) from the Lexmark Web site at
4 Save the downloaded package in the /tmp directory, and then uncompress the package file:
# /opt/freeware/bin/gunzip /tmp/print-drivers-aix5-sysv.pkg.gz
5 Type the following on the command line, and then press Enter:
# smit install_latest
6 When prompted to type the input device directory for software, type the following:
/tmp/print-drivers-aix5-sysv.pkg
7 Select the packages you want to install. All packages are installed by default. a On the Software to install option, select List. b Select the packages you want to install. c Click OK. 8 Specify any other install options. 9 Click OK to begin installing the printer driver.
You receive a message when the installation is complete.
10 Run the following setup script to complete the installation:
# /usr/lpp/lexprint/setup.lexprint Note: Your specific printer driver may not be included in the standard package. Check the Software and Documentation CD or the Lexmark Web site to determine if there are any software plug-ins available. For more information, see Plugin Manager utility (software updates) on page 31.
Installing on Red Hat, Red Flag, Linpus, or SUSE Linux
1 Read Before installing the printer drivers on page 8. 2 Make sure you have enough disk space in /usr/local to install the printer driver.
3 Download the printer drivers package (print-drivers-linux-glibc2-x86.rpm) from the Lexmark Web site at
4 Install the package file:
# rpm -ivh /tmp/print-drivers-linux-glibc2-x86.rpm
5 Run the following setup script to complete the installation:
# /usr/local/lexmark/setup.lexprint Note: Your specific printer driver may not be included in the standard package. Check the Software and Documentation CD or the Lexmark Web site to determine if there are any software plug-ins available. For more information, see Plugin Manager utility (software updates) on page 31.
c Available printer settings options can be found by running the lsqueue_opts command. Using the Printer
Type as determined in step b on page 19, run the following command: # /usr/lexprint/bin/lsqueue_opts -f printer_type Example: # /usr/lexprint/bin/lsqueue_opts -f 10LT63x Locate the options and values you want to change and pass them the mkqueue command with the -o argument.
2 Type the following command:
# /usr/lexprint/bin/mkqueue -d device_name -q queue_name -p printer_type -l printer_language -o printer_options Note: Type mkqueue -h from the command line for more details regarding this command. Example: Using information gathered in step 1 on page 19, create a new print queue (myqueue), for a virtual device (mydevice). The printer type is 10LT63x and the language selection is specified as automatic for this queue. Specify additional printer options so that paper from the second tray is used and jobs are duplexed against the long edge of the paper. # /usr/lexprint/bin/mkqueue -d mydevice -q myqueue -p 10LT63x -l automatic -o "paper_tray=tray2 duplex=long_edge"
Changing the print queue status
There are four print queue states:
EnabledThe normal state of the operation. Jobs in the queue are actively processed. DisabledPrint job processing stops. New jobs can be submitted, but they are not processed. AcceptingPrint jobs can be submitted to the queue. RejectingNo print jobs can be submitted to the queue.
These states are not all mutually exclusive. For example, an enabled queue may reject jobs.
The printer driver shows these states by placing an icon on the print queue within the Icon View, and by changing the color of the text in Detail View.
If you see a red X on a print queue, the print queue is rejecting jobs. If you see a yellow ! on a print queue, the print queue is disabled.
To change the status of a print queue within the printer driver:
1 Right-click the print queue. 2 Select or clear the appropriate Enabled and Accepting check boxes.
To change the status of a print queue from the command line, type the following command: # /usr/lexprint/bin/chqueue -q myqueue -m accept|reject|enable|disable Notes:
Accept, reject, enable, and disable are all options for the action you want to perform. Specify only one of these
actions when typing the command.
Type chqueue -h from the command line for more details regarding this command.
Changing the print queue properties
1 Open the printer driver. 2 Right-click the print queue icon. 3 Select the appropriate Properties menu item. 4 Change the settings. 5 Click OK.
From the last screen of the Add Printer Queue Wizard By right-clicking a printer queue and then selecting Printer Classes
To add this printer to a class, select Enable Printer Classes. You have three options available:
Create a New Class Select Existing Class Remove Existing Class
You cannot remove a queue from a class at the time you create the queue. You can also change or modify a printer queue class from the command line. To add a queue to a new or existing class, type the following command: # /usr/lexprint/bin/chqueue -q myqueue -c -a class1,class2 To remove a queue from a class, type the following command:
# /usr/lexprint/bin/chqueue -q myqueue -c -r class1 Note: After the last queue has been removed from a class, the class is removed automatically.
Creating a class
1 Access Printer Classes. 2 Select Create a New Class. 3 Enter the name of the new class.
Adding to a class
1 Access Printer Classes. 2 Select the check box next to the existing class to associate the queue with that class.
Removing a queue from a class
1 Access Printer Classes. 2 Clear the check box next to the class from which you want to remove the queue.
Note: A class exists as long as it contains queues.
Managing printer groups
Printer groups help you select a small group of print queues from the available print queues on a UNIX system. You can use the Group Manager tool to add or remove print queues in groups.
Creating a printer group
You can create a printer group using the Group Manager tool. You can access the New Group Manager dialog box by right-clicking All Printers and selecting New Group.
1 Enter the group name in the Group Name field. 2 From the Available Print Queues column, select the print queues you want to add to the group. 3 Click
to add the print queues to the Select Print Queue column. Click Queue column. to move all queues to the Select Print
4 Click OK.
Note: To remove a print queue from the Select Print Queue column, select the print queues to be removed, and then click.
Adding a print queue to My Printers or another printer group
You can add a print queue to My Printers or another printer group either by dragging a printer from the main window onto a printer group or by using the Group Manager tool.
1 Right-click a group name, and then select Group Manager. 2 From Available Print Queues, select the print queues you want to add to the group.
3 Click
to add the print queues to the group.
Note: To remove a print queue from the Selected Print Queue column, select the print queues to be removed, and then click.
# lp -d lab_printer -o duplex=long_edge my_report.ps If you are printing from Linux using the LPRng print subsystem, type the following at the command line: # lpr -P lab_printer -C "lexopts:duplex=long_edge" my_report.ps
Printing a file
1 Right-click the print queue, and then select Print File from the menu. 2 From the browser dialog, select the file. 3 If you want to change the printing preferences for this job only, click Preferences.
Note: Unless your printer supports Direct Image or an ImageQuick card SIMM, only PostScript emulation, PCL emulation, and ASCII text files can be printed in this manner.
4 Click Print File.
Printing a test page
Printing a test page sends a job through the print queue to verify the queue is working correctly. The test page includes information such as the queue name, device name, and printer type.
1 Right-click the print queue icon. 2 Select Print Test Page.
Printing a duplex job
Duplex printing is printing on both sides of the paper. The printer must have an optional duplex unit installed in order to print on both sides of the paper. Check the documentation that came with the printer to determine if this option is supported. If you have an optional duplex unit installed in your printer, you can specify duplex printing by indicating the binding edge you want to use from the Duplex options. If you select Long-edge, the pages of the document turn like the pages of a magazine. If you select Short-edge, the pages turn like the pages of a legal pad
Printing multiple pages on one sheet
The multiple-page printing option lets you print images of multiple pages on one sheet. You can specify the direction the multiple images fit on the page and whether images are separated by a border. When you make a selection, the graphic to the right of the option changes to show how the printed page will look.
1 From the Properties dialog box, click Setup. 2 Choose the number of page images you want to print on the same sheet of paper. 3 Click OK.
Note: Not all printers support the multiple-page feature. Check the documentation that came with the printer to determine if the printer supports this feature.
Printing multiple copies of a document
Use the Copies option to print more than one copy of a document at a time. The Copies box on the Setup tab is independent of a Copies option that may be available in the Print dialog box of some programs. Program settings usually override the settings on the Setup tab. Specifying the number of copies on the Setup tab usually prints uncollated copies faster. Specifying a multiple numbers of copies on both the Setup tab and in a program Print dialog box may produce unpredictable results.
1 From the Properties dialog box, click Setup. 2 Enter the number of copies. 3 Click OK.
Changing a print queue to print to a different printer
1 Open the printer driver. 2 Right-click the print queue icon. 3 Select Change Device. 4 Select a device from the Device Manager table.
If you do not see your printer listed in the table, you can create a new virtual device by clicking Add Device.
5 Click OK.
Note: You cannot change a print queue's virtual device from the command line.
Removing a print queue
From the icon view
1 Right-click the icon for the printer you want to delete. 2 Select Delete.
From the detail view
1 Select any number of the print queues listed in the table that you want to delete. 2 Right-click, and then select Delete.
From the printer driver
1 Click Remove Print Queue. 2 Select the print queues you want to delete.
3 Click Remove.
Note: The queue must be idle before you remove it. A notification message appears if you try to remove a queue that is in use. You can also remove a print queue from the command line. To remove a print queue, type the following command: # /usr/lexprint/bin/rmqueue -q queue_name
Plugin Manager utility (software updates)
Using the Plugin Manager utility
You can download and install new plug-ins for added device support. The Plugin Manager utility can be run from the printer driver or the command line. Note: Your specific printer driver may not be included in the standard package. Check the Software and Documentation CD or the Lexmark Web site to determine if there are any plug-ins available for your printer.
To access the utility from the printer driver, click File Software Update. To access the utility from the command line, enter the following command:
# /usr/lexprint/bin/plugin_manager The Plugin Manager utility lists all the currently installed plug-ins. If there are no plug-ins listed, you can download the latest device support from http://downloads.lexmark.com.
Installing plugins from the printer driver
Software Update.
2 Select Install. 3 Select a plugin from the directory.
A confirmation dialog appears. It contains more specific information about the plugin you selected, and gives you the option to proceed with the installation.
4 Follow the instructions on your screen to complete installation.
After installation, you may be required to restart the application for changes to take effect.
Removing plugins from the printer driver
The Remove option allows you to uninstall a selected plugin.
2 From the list, select the plugin you want to uninstall. 3 Select Remove.
You must restart the application for the changes to take effect.
Using the Plugin Manager utility from the command line
Installing, listing, and removing plug-ins is scriptable. You can maintain plug-ins from the command line.
Installing plug-ins
# /usr/lexprint/bin/plugin_manager -i plugin_file
Listing installed plug-ins
# /usr/lexprint/bin/plugin_manager -l
Removing plug-ins
# /usr/lexprint/bin/plugin_manager -r plugin_name
Frequently asked questions
Command line
How can I find the command line options for a print queue? The command line program lsqueue_opts provides a list of options available for this queue. For more information, see Printing from the command line on page 24. Can I create a print queue from the command line? You can create and remove both virtual devices and print queues from the command line. For more information, see Creating virtual devices on page 17 and Creating a print queue on page 19. What is the command line submission GUI, and how does it work? The command line submission GUI is accessed by typing lexlp instead of the lp command when you print from the command line. If you use lexlp, the Print Queue Properties dialog appears. From this dialog, you can customize the print properties for this particular print job before the job prints. For more information, see Printing from the command line on page 24. Note: You can also use the lexlp in applications such as Mozilla. Replace the existing lp command with the lexlp command.
Print queue management
I see special icons on the printer in the icon view. What do the icons mean? Three different icons may appear on the print queues.
To make the queue accept jobs again, right-click the queue icon, and then select Accepting.
Recreate the print queue. Restart the lpsched or lpd process.
The print queue is disabled or down
If the printer is connected locally (by way of a parallel, serial, or USB cable), check the printer cable. If the printer is connected to a network, check the print server.
If you are using an internal print server
Make sure the print server is properly installed and enabled. To check this, print
a setup page for the printer. The print server should appear in the list of attachments on the setup page.
If a network-related message appears on the control panel, see Additional
problems on page 40.
Make sure TCP/IP is activated on the print server. The protocol must be active
in order for the print server and Print Drivers to work. You can activate TCP/IP from the printer control panel. For more information, see the print server documentation. If you are using an external print server
Check the print server lights.
For more information, see the print server documentation.
Print a setup page from the print server.
If the printer is connected to a network, PING the print server. If PING works, check the IP address, netmask, and gateway to make sure they are correct. Turn the printer off
and PING again to check for duplicate IP addresses.
If PING does not work, check the setup page you printed to be sure IP is enabled.
If TCP/IP is enabled, check the IP address, netmask, and gateway to make sure they are correct Make sure bridges and routers are functioning properly. Make sure all the physical connections between the print server, the printer, and the network are working. If the printer is connected to a network, compare the IP address of the print server to the address stored for the
network printer in the name server or /etc/hosts file. If the addresses do not match, edit the /etc/hosts file, or update the name server to correct the address.
For more information about printing a setup page, see the print server documentation.
If the page prints, the connection between the print server and the printer is working correctly. If the page does not print, check all physical connections. Make sure the print queue is Enabled and Accepting jobs after you correct the problem. Re-enable the queue with the printer drivers. Remove all print jobs from the queue, and then re-enable the queue. Verify the virtual device selection in the queue. Create a new virtual device, and then change the queue to point to the newly configured virtual device. Restart the lpsched or lpd process.
4 The names "Apache" and "Apache Software Foundation", "Jakarta-Oro" must not be used to endorse or promote
products derived from this software without prior written permission. For written permission, please contact apache@apache.org.
5 Products derived from this software may not be called "Apache" or "Jakarta-Oro", nor may "Apache" or "JakartaOro" appear in their name, without prior written permission of the Apache Software Foundation. THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================== This software consists of voluntary contributions made by many individuals on behalf of the Apache Software Foundation. For more information on the Apache Software Foundation, please see http://www.apache.org/
JDOM Software License 1.0
Copyright (C) 2000-2004 Jason Hunter & Brett McLaughlin. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1 Redistributions of source code must retain the above copyright notice, this list of conditions, and the following
2 Redistributions in binary form must reproduce the above copyright notice, this list of conditions, and the
disclaimer that follows these conditions in the documentation and/or other materials provided with the distribution.
3 The name "JDOM" must not be used to endorse or promote products derived from this software without prior
written permission. For written permission, please contact request@jdom.org.
4 Products derived from this software may not be called "JDOM", nor may "JDOM" appear in their name, without
prior written permission from the JDOM Project Management at request@jdom.org. In addition, we request (but do not require) that you include in the end-user documentation provided with the redistribution and/or in the software itself an acknowledgement equivalent to the following: "This product includes software developed by the JDOM Project (http://www.jdom.org/)." Alternatively, the acknowledgment may be graphical using the logos available at http://www.jdom.org/images/logos. THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. This software consists of voluntary contributions made by many individuals on behalf of the JDOM Project and was originally created by Jason Hunter (jhunter@jdom.org) and Brett McLaughlin (brett@jdom.org). For more information on the JDOM Project, please see http://www.jdom.org/.
Glossary
accepting The state of a print queue when it allows the submission of new print jobs. If a queue is in the accepting state, the user is able to use the lp or lpr command to submit printer requests. AIX alias Automatic Printer Language IBM's version of the UNIX operating system. A part of the BSD printer subsystem, aliases let you create multiple names for the same print queue. A printer language option for printers that support both PostScript and PCL emulation printer languages. This option gives users the ability to print PostScript, PCL emulation, and ASCII text files to the same print queue. The transmission speed of the serial communication. The sending device speed must match the receiving port speed. A designation for Sun's bidirectional parallel port. This type of destination usually has a device name that resembles /dev.bppxx, replacing xx with the appropriate device number. community name disabled DNS Domain Name System (DNS) enabled external print server See SNMP community name. The state of a print queue when print jobs are held in the print queue. See Domain Name System. Something that resolves IP addresses to hostnames The state of a print queue when print jobs are sent from the print queue to the printer. Hardware used to connect printers to a LAN using either a Token-Ring or Ethernet cable. The external print server allows network connectivity of a parallel or serial printer. firmware firmware level gateway hostname internal print server Internet Protocol (IP) Software that resides in the print server; also called microcode. The version of the firmware. The connection device between the LAN and other equipment, such as computers. Name used to identify a network printer or computer. A card installed inside a printer to connect the printer to the network. A standard protocol that specifies how packets are passed through networks. It identifies the format of the packet and describes how it should be delivered in a seamless manner. Although it is a separate protocol from TCP, it is often referred to as TCP/IP because TCP and IP protocols are often used together. The unique physical address of the printer on a network using TCP/IP protocol. See Local Area Network. Any portion of a LAN that operates independently of, but is connected to, the network by bridges or routers.
lines per page
Local Area Network (LAN) lsqueue_opts mkdevice mkqueue My Printers name server netmask network address Network Information System (NIS)
network print server network printer NIS NIS tables Packet Internet Groper (PING) parity PING pkgadd pkginfo pkgrm port Print and Hold print file
print queue
A staging area used to store print jobs, to be fed to a predefined printer or pool of printers. The place in the server where print jobs are stored for printing.
Print Queue Name print server
The name given by the administrator to the print queue when it is created. It is used by the lp, lpr, and lexlp commands to direct print jobs. Hardware or software (or a combination of hardware and software, such as network print servers) that takes information from a print queue and sends it to a printer. See internal print server and external print server. A page stored on the print server that contains information about that server. A page that is printed from within the printer driver to test the communication between the software and the printer. A pool of printers containing similar characteristics and capabilities. When one printer is busy, the job is then submitted to the next available printer. The model name of the printer connected to a particular virtual device. An AIX group authority. Members typically have authority to perform functions such as setting up printers, making print queues, and deleting printers. A command line program that generates command-line arguments for other transport agents, such as send_network. A command line program that formats print jobs for printing according to queue settings. A set of rules governing the communication and the transfer of data between two or more devices in a communication system. Specified boundaries of a subnet, used when searching for IP addresses. ASCII or plain text data that requires no interpretation by the print queue. Raw data can contain coding that is interpreted by the printer. Linux packaging manager, which can be used to install, query, verify, and uninstall software packages. The state of a print queue when the user is not able to use the lp or lpr command to submit print requests. A command line program that removes virtual devices. The system administration utility on HP-UX. A command line program that sends data to a TCP/IP network printer. A command line program that sends data to a printer connected to a parallel port. A command line program that sends data to a printer connected to a serial port. A command line program that sends data to a printer connected to a USB port. See System Management Interface Tool (SMIT).
Plugin Manager utility 31 plugins installing 31 removing 31 plug-ins using scripts to manage 31 plug-ins, managing using the Plugin Manager utility 31 Print and Hold 28 print job orientation 27 print queue adding to a printer group 23 alias 22 changing properties 21 changing status 20 changing to a different printer 30 creating from the command line 19 creating using the Add Print Queue Wizard 19 displaying aliases 22 managing 33 removing 30 removing from a class 23 troubleshooting 36, 37, 38 printable area, defining 27 printer aliases 22 creating 22 displaying 22 printer classes 22, 35 adding 23 creating 23
default settings 34 Device Manager 17 duplex printing 26
removing queues 23 printer drivers administrator mode 34 installing 8 opening 15 printing from 25 removing 13 troubleshooting 39 user mode 34 printer group 35 adding print queues 23 creating 23 removing 24 printing collating copies 26 duplex 26 from the command line 24 from the printer driver 25 multiple copies 26 multiple-pages on one sheet 26 Print and Hold 28 specifying orientation 27 test page 25 text files 27
removing remaining directories 14
holding print jobs 28 hostname troubleshooting 38
Setup Administrative Group 15 Asian Drivers 16 CUPS 16 Desktop Integration 16 Paper Size 15 Web Browser 15 software updates installing 31 removing 31 using scripts to manage 31 software updates, managing using the Plugin Manager utility 31 supported operating systems 8 system requirements 9
installing printer drivers before installing 8 finding space 13 on Debian Linux 11 on HP-UX 9 on IBM AIX 10 on Linpus Linux 11 on Linspire Linux 11 on Red Flag Linux 11 on Red Hat Linux 11 on Sun Solaris SPARC 11 on Sun Solaris xon SUSE Linux 11 on Ubuntu Linux 11
test page, printing 25 text files, printing 27 troubleshooting file sent to print queue came out as garbage 38 hostname does not resolve 38 jobs appear in print queue for extended time 36 my printer driver is not listed 39 print queue does not receive print jobs 37 print queue is disabled or down 37 print queue is empty but document did not print 36 printer driver is unable to find network printer 39
UNIX using 7 UNIX system requirements 35 user mode 34
virtual devices changing 29 creating from the command line 18 creating using the Device Manager 17 network options 35 removing 30 required information 17

Lexmark Linux Printer Driver Developers Kit Z55 Sample CUPS Printer Driver Version 1.0 4
Chapter 1
REFERENCE
In this document, we make reference to the following documentation: LLPDDK Interface Spec (v. 2.0)
Lexmark Linux Printer Driver Developers Kit Z55 Sample CUPS Printer Driver Version 1.0 1.p5
Referenc
Chapter 2
FILES AND DIRECTORIES
A number of files and directories represent the architecture of the Z55 Sample CUPS Printer Driver based on the Lexmark Linux Printer Driver Developers Kit. The following lists the most important files and directories included in the package and their locations: [install_dir]/Makefile The top level Makefile for the compilation, installation and un-installation of the Z55 sample CUPS printer driver. [install_dir]/README This file informs the developer all about the Lexmark Linux Printer Driver Developers Kit. [install_dir]/COPYING The file containing the text version of the GNU General Public License (GPL), which governs the copying agreement of the Sample CUPS Printer Driver based on the Lexmark Linux Printer Driver Developers Kit. [install_dir]/INSTALL A text file detailing how to expand the package, configure the system, compile the sample driver and install the compiled binary to the system. [install_dir]/source The directory, which contains all source codes (including header files) of the Z55 sample CUPS printer driver. Each component of the sample driver (filter and backend) represents one subdirectory containing the associated source codes. [install_dir]/system The directory containing the OS specific files necessary for the proper functioning of the Z55 sample CUPS printer driver. The [install_dir] refers to the directory where the Z55 sample driver package was expanded.
Lexmark Linux Printer Driver Developers Kit Z55 Sample CUPS Printer Driver Version 1.0 6
Files and Directories
Chapter 3
The Z55 sample printer driver was developed with the following tools: Computer System Dell 4100 Computers Linux Operating System Red Hat Linux Distribution 9.0 Kernel 2.4.17 Computer Applications - Text Editors (vi, vim, emacs, etc) - KDevelop, Anjuta
Lexmark Linux Printer Driver Developers Kit Z55 Sample CUPS Printer Driver Version 1.0 7
Chapter 4
BUILDING THE Z55 SAMPLE DRIVER
To compile and build the Z55 sample driver package, type in the command prompt the following: tar xvfz Z55SampleCUPS-x.y-z.tar.gz cd Z55SampleCUPS-x.y-z make clean make make install
The HTTP server configuration file is purposely similar to the Apache server configuration file and defines all of the access control properties for the server.
Lexmark Linux Printer Driver Developers Kit Z55 Sample CUPS Printer Driver Version 1.Global Architecture
The printer and class definition files list the available printer queues and classes. Printer classes are collections of printers. Jobs sent to a class are forwarded to the first available printer in the class, roundrobin fashion. The MIME type files list the supported MIME types (text/plain, application/postscript, etc.) and "magic" rules for automatically detecting the format of a file. The MIME conversion rule files list the available filters. The filters are used when a job is dispatched so that an application can send a convenient file format to the printing system which then converts the document into a printable format as needed. Each filter has a relative cost associated with it, and the filtering algorithm chooses the set of filters that will convert the file to the needed format with the lowest total "cost". The PPD files describe the capabilities of all printers, not just PostScript printers. There is one PPD file for each printer. PPD files for non-PostScript printers define additional filters through cupsFilter attributes to support printer drivers.
6.1.3 CUPS API
The CUPS API contains CUPS-specific convenience functions for queuing print jobs, getting printer information, accessing resources via HTTP and IPP, and manipulating PPD files.
6.1.4 Berkeley and System V Commands
CUPS provides the System V and Berkeley command-line interfaces for submitting jobs and checking the printer status. The lpstat and lpc status commands also show network printers ("printer@server") when printer browsing is enabled. The System V administration commands are supplied for managing printers and classes. The Berkeley printer administration tool (lpc) is only supported in a "read-only" mode to check the current status of the printer queues and scheduler.
6.1.5 CUPS Imaging
The CUPS Imaging library provides functions for managing large images, doing colorspace conversion and color management, scaling images for printing, and managing raster page streams. This was used by the CUPS image file filters, the PostScript RIP, and all raster printer drivers.
6.1.6 Z55 Filter
The Z55 filter reads from the standard input or from a file if a filename is supplied. It processed the raw PPM into directly understandable code by the Lexmark printer. All output is sent to the standard output.
6.1.7 Z55 Backend
The Z55 Backend sends the processed code (printer swath commands) to the Lexmark printer device. It also retrieves error code from the printer and reports them to the user via the CUPS web browser.
6.2 PRINTING PROCESS
6.2.1 Nominal Case
A printing process is initiated via a call to lpr or lp command for a regular print job under Linux. Important notice: All the print job parameters (paper format, paper type, color mode) are passed to the driver via a configuration file. This file must have been created and contain the up-to-date print job information before the job is started, that is, before the lpr command is called.
Lexmark Linux Printer Driver Developers Kit Z55 Sample CUPS Printer Driver Version 1.0 11
Global Architecture
In the printer queue dedicated to the printer, two processes are started every time a print job is submitted. These processes are the Z55 Filter and the Z55 Backend. When the CUPS spooler starts processing the print job, the Z55 Filter then starts accepting the raw PPM data and converts it into understandable Lexmark printer code. The Z55 Filter then sends the Lexmark printer codes to standard output. The outputs of this are caught by the CUPS spooler and redirect it to the Z55 Backend. The Z55 Backend, on the other hand, will simply read data from the CUPS spooler and sends it directly to the Lexmark printer device and does so until no more data for reading is available. If so, it exits. Printing is completed when the Z55 Filter had stopped sending Lexmark printer commands. During printing, the Z55 Backend notifies its status (each time it changes) to the user via the CUPS web browser. The possible statuses are: Printer is ready to print Printer is busy printing Error message - Please close the printer cover - Printer is out of paper. Please load paper - Communication was lost. Please check printer and connections - Paper jam occurred. Remove the paper jam and try printing again - The color ink is low - The black ink is low - Both cartridges are low in ink - Print head jam occurred. Please check print head - Cartridge error occurred. Please check print cartridge - Color cartridge is missing. Please install cartridge - Black cartridge is missing. Please install cartridge - Both cartridges are missing. Please install cartridge
Lexmark Linux Printer Driver Developers Kit Z55 Sample CUPS Printer Driver Version 1.0 13
\Communication with the Outside
Envelope #9 Envelope #10 Envelope DL Envelope C5 Envelope C6 Envelope B5 Envelope 7 A2 Baronial Chokei 3 Chokei 4 Chokei 40 Kakugata 3 Kakugata 4 Kakugata 5 Kakugata 6 Custom Paper size Inkset refers to the cartridges installed in the printer device. The options are: K (Black cartridge only) CMY (Color cartridge only) CMYK (Black and Color cartridges) The CUPS filter module uses these parameters in order to prepare the right output for the Z55 Filter.
Lexmark Linux Printer Driver Developers Kit Z55 Sample CUPS Printer Driver Version 1.0 14
Chapter 8
FUNCTIONAL DESCRIPTION
This chapter deals with the functional aspect of the Linux Sample Printer Driver. It defines modules that are detailed later in this document.
8.1.1 Overview
The architecture of the Z55 Linux Sample CUPS Printer Driver is based on 5 software components: 1. The Adaptation Layer is responsible of the implementation of our chosen Linux interface for Printer Drivers and takes care of the needed conversions to fit the LLPDDK. Two components, the Z55 Filter, which converts RGB objects to Lexmark codes; and the Z55 Backend, which provides utility functions and sends Lexmark codes to the Lexmark printer device, compose it. 2. The Cartridge Functions is used to provide user interactions on cartridge change, alignment (manual and automatic) and cleaning of cartridge nozzles. 3. The Communications is in charge of establishing the communication path between the Z55 Backend and the printer device. It is also used to send or read raw data to/from the printer device. 4. The Error Functions are the implementation of the error reporting developed from the LLPDDK provided abstract class. They are used to notify errors occurring in the current process to the outside world. Basically those functions signal the errors to the CUPS web browser. 5. The Lexmark Linux Printer Driver Developers Kit provides the internal workings of Lexmarkbranded printer devices.
Cartridge Functions
Error Functions
Application
Adaptation Layer
Linux Development Kit
Communications
Figure 8-1 Sample driver functional diagram
8.1.2 Adaptation Layer 8.1.2.1 Overview
This module implements the required functions for the Linux Sample Printer Driver and is responsible for the integration with the LLPDDK. It receives raw PPM data and processes these (Z55 Filter) and sends them to the Lexmark printer device (Z55 Backend).
8.1.2.1.1 Other Modules Interactions
The Z55 Filter component mainly communicates with the PrintJobManager while the Z55 Backend component interacts with the LinuxInkjetPrinter. Both the PrintJobManager and the LinuxInkjetPrinter are
Lexmark Linux Printer Driver Developers Kit Z55 Sample CUPS Printer Driver Version 1.0 15
Functional Description
components of the LLPDDK wherein the former is solely responsible for initializing and monitoring a print job while the latter provides mechanism of controlling the actual printer device.
8.1.2.2 Print Job Management
The primary function of the Z55 Filter component is to make sure that the print job requested by other applications is properly performed and its execution conforms to the printing process. There are different printing processes. The nominal printing process refers to printing when no error was encountered and the user did not cancel the print job. Another printing process refers to printing when printer errors occurred. In addition, when the application or the user cancels printing. The PrintJobManager, which is part of the LLPDDK, is responsible for the proper management of print jobs.
8.1.2.3 Printer Device Management
The Z55 Backend component was designed to provide management services to the actual Lexmark printer device. The Z55 Backend component is capable of servicing: sending processed data to the Lexmark device. Besides servicing the printer device, the Z55 Backend is also capable of retrieving printer information, status and printer errors from the device.
8.1.3 Cartridge Function
This module is used to service cartridge operations of the printer device. It corresponds to the CartridgeUserInterface module of LLPDDK.
8.1.3.1 Cartridge User Interface
The CartridgeUserInterface is needed by the Cartridge Manager to ask the user for information/confirmation about a changed cartridge. This is also the interface to ask the user whether to perform manual alignment or automatic alignment (if supported by the printer). If the user selects manual alignment, then this module is also used to retrieve inputs from the user.
8.1.3.2
Other Modules Interactions
The Linux specific implementation of the CartridgeUserInterface module is instantiated by the Z55 Backend component.
8.1.4 Communications Functions
This module is in charge of communicating with the Printer over USB. It is derived from the virtual class defined in the platform independent driver, called the PortMonitor, and thus has the same interface.
8.1.4.1
The Port Monitor is created by the Z55 Backend component and is used as communication interface with the printer by the LLPDDK.
8.1.5 Error Functions
The Error Functions provide the mechanism of notifying the outside world that an error was encountered. Two LLPDDK modules, the ErrorInterface and ErrorCommunicator, perform such tasks of error management. However, Linux specific implementation is required for the ErrorCommunicator in order for the LLPDDK to work.
PrintSettings jobprop; if ((argc < 6) || (argc > 7)) { fputs("ERROR: rastertoz55 job-id user title copies options [file]\n",stderr); return 1; } else if (argc == 6) jobprop.FileDescriptor = 0; else { jobprop.FileDescriptor = open(argv[6],O_RDONLY); if (jobprop.FileDescriptor < 0) { perror("ERROR: unable to open raster file - "); return 1; } }
9.2.2.2
Initialization
Once the correct arguments are met, component initialization should take place next. During initialization the PrintJobManager module (of LLPDDK) is also instantiated. However, initialization of this LLPDDK module requires the printer model, the path to the utility folder and the file where to store the output. Since, the sample driver is for Z55, we set the printer model to Z55. We also use the default path of the utility folder and since CUPS will redirect the output to a specific place, we must use the standard output as the output file.
Z55Filter z55filter; char utilityfolder[255]; bool filterret; strcpy(utilityfolder,"/usr/local/z55llpddk/utility/"); filterret = z55filter.Initialize(utilityfolder,stdout); if (filterret == false) { fputs("ERROR: Initialization Failed\n",stderr); return 1; } bool Z55Filter::Initialize( char * UtilityFolder, FILE * OutputFile) { if (m_PrintJobManager == NULL) { m_PrintJobManager = new PrintJobManager( "Z55",
Lexmark Linux Printer Driver Developers Kit Z55 Sample CUPS Printer Driver Version 1.0 19
UtilityFolder, OutputFile); if (m_PrintJobManager == NULL) return false; } m_Consume = false; return true; }
9.2.2.3
Setting the Job Properties
Another important task of the Z55 Filter is to set the print job properties before processing the input data. This information will be helpful in the processing of the RGB to correctly produce the desired Lexmark print commands. In order to retrieve print job properties, we made use of the configuration file by reading and extracting printer information from it. Such information includes print quality, cartridge information (id, alignment), media information (size, type, tray) and ink counts.
PrintSettings jobprop; SetJobProperties(jobprop); void SetJobProperties(PrintSettings & jobprop) { jobprop.FirstCartridge.PhysicalID = CartridgeManager::CM_MISSING_ID; jobprop.FirstCartridge.LogicalID = CartridgeManager::CM_MISSING_ID; jobprop.FirstCartridge.SavedID = CartridgeManager::CM_MISSING_ID; jobprop.SecondCartridge.PhysicalID = CartridgeManager::CM_MISSING_ID; jobprop.SecondCartridge.LogicalID = CartridgeManager::CM_MISSING_ID; jobprop.SecondCartridge.SavedID = CartridgeManager::CM_MISSING_ID; jobprop.FirstCartridge.Alignment.Vertical = 8L; jobprop.FirstCartridge.Alignment.Horizontal = 8L; jobprop.SecondCartridge.Alignment.DraftBidi = 10L; jobprop.SecondCartridge.Alignment.NormalBidi = 10L;
9.2.2.4
Processing the Print Job
Once everything is verified (parameters and print job properties), the Z55 Filter is ready to process the print job, that is, perform conversion from RGB objects to Lexmark print commands. This kind of process is state-driven since the PrintJobManager methods are state-driven (refer to LDK Interface Specifications).
Z55Filter z55filter; char utilityfolder[255]; bool filterret; filterret = z55filter.ProcessPrintJob(jobprop); if (filterret == false) { fputs("ERROR: Cannot Process Raster\n",stderr); return 1; } bool Z55Filter::ProcessPrintJob(
Lexmark Linux Printer Driver Developers Kit Z55 Sample CUPS Printer Driver Version 1.0 20
PrintSettings & JobSettings) { long imagelength, pagelength; PrintJobManager * m_PrintJobManager; pjmerror = m_PrintJobManager->PJM_StartDocument( JobSettings.PrintQuality, JobSettings.PrintColor, JobSettings.FirstCartridge, JobSettings.SecondCartridge, JobSettings.BorderlessPrinting); while (imagelength > 0) { pjmerror = m_PrintJobManager->PJM_StartPage( JobSettings.PaperSize, JobSettings.PaperType, JobSettings.PaperTray, JobSettings.PaperMargins); while ((imagelength > 0) && (pagelength > printdata.YPosition)) { pjmerror = m_PrintJobManager->PJM_SendPixels( printdata); ) pjmerror = m_PrintJobManager->PJM_EndPage(inklevels); } m_PrintJobManager->PJM_EndDocument(); return true; }
9.2.3 Z55 Backend
The Z55 Backend component was designed to provide management services to the actual Lexmark printer device. Besides servicing the printer device, the Z55 Backend provides bi-directional communication between the host computer and the printer device. This component is responsible not only in sending print data to the printer device but also in retrieving printer information, status and printer errors from the device.
9.2.3.1
Similar to Z55 Filter, the Z55 Backend requires at least 6 arguments to run properly. a.) printer - name of the printer queue. b.) job - the numeric job ID for the job being printed. c.) user - the string from the originating-user-name attribute. d.) title - the string from the job-name attribute.
Lexmark Linux Printer Driver Developers Kit Z55 Sample CUPS Printer Driver Version 1.Detailed Implementation
e.) copies - is the numeric value from the number-copies attribute. f.) options - the string representations of the job template attributes. g.) filename - is the request file. Please take note that if there are only 6 arguments specified, the Z55 Backend will listen for the input data from the standard input.
int filehandle; Z55Backend z55backend; int printcopy; if (argc == 1) { z55backend.ListDevices(); return 0; } else if ((argc < 6) || (argc > 7)) { fprintf(stderr,"Usage: z55 job-id user title copies options file\n"); return 1; } else if (argc == 6) { filehandle = 0; printcopy = 1; } else { if ((filehandle = open(argv[6], O_RDONLY)) < 0) return 1; printcopy = (unsigned int) atoi(argv[4]); }
9.2.3.2
If the argument requirements are satisfied, the initialization of Z55 Backend should take place next. During initialization, the LinuxInkjetPrinter module (of LLPDDK) is also instantiated. However, initialization of this LLPDDK module requires the printer model and the path to the utility folder. Since the sample driver is for Z55, we set the printer model to Z55. We also use the default path of the utility folder.
Z55Backend z55backend; char portpath[255]; char methodname[255]; char hostname[255]; char username[255]; bool backendret; z55backend.ExtractDeviceInfo(argv[0], methodname, username, hostname, portpath, &portnumber); backendret = z55backend.Initialize("/usr/local/z55llpddk/utility/",portpath); if (backendret == false) return 1; bool Z55Backend::Initialize(
Lexmark Linux Printer Driver Developers Kit Z55 Sample CUPS Printer Driver Version 1.0 22
char * UtilityFolder, char * PrinterPort) { m_LinuxPortMonitor = new LinuxPortMonitor((unsigned char *) PrinterPort); m_LinuxErrorInterface = new LinuxErrorCommunicator; m_LinuxCartridgeInterface = new LinuxCartridgeUserInterface; m_LinuxInkjetPrinter = LinuxInkjetPrinter::GetInstance(); m_LinuxInkjetPrinter->RegisterClasses( m_LinuxErrorInterface, m_LinuxPortMonitor, m_LinuxCartridgeInterface, UtilityFolder, "Z55", true); return true; }
9.2.3.3
Processing the Print Data
The primary task of the Z55 Backend is to send processed print data (Lexmark printer commands) directly to the Lexmark printer device and at the same time, to read information such as status and errors from the device. This is called bi-directional printing between the host computer and the printer device. This kind of task can be considered also as a special request wherein Z55 Backend polls for incoming data from an input pipe (and not from the configuration file) and processes data when there is available data.
int filehandle; Z55Backend z55backend; int printcopy; bool backendret; if (argc == 1) { z55backend.ListDevices(); return 0; } else if ((argc < 6) || (argc > 7)) { fprintf(stderr,"Usage: z55 job-id user title copies options file\n"); return 1; } else if (argc == 6) { filehandle = 0; printcopy = 1; } else { if ((filehandle = open(argv[6], O_RDONLY)) < 0) return 1; printcopy = (unsigned int) atoi(argv[4]); }
Lexmark Linux Printer Driver Developers Kit Z55 Sample CUPS Printer Driver Version 1.0 23
backendret = z55backend.HandleData(filehandle); if (backendret == false) return 1; return 0;
9.4.2 Behavior 9.4.2.1 Initialization
The LinuxPortMonitor is created by the Adaptation Layer, specifically by the Z55 Backend component, and initialized by the LLPDDK. After successfully creation, the Z55 Backend will immediately open the port specified by the caller. If opening the port failed, the driver will retry every 5 seconds until the port is opened successfully.
bool Z55Backend::Initialize( char * UtilityFolder, char * PrinterPort) { m_LinuxPortMonitor = new LinuxPortMonitor((unsigned char *) PrinterPort); while (m_LinuxPortMonitor->PM_Open() != PortMonitor::PM_ERR_SUCCESS) { sleep(5); } m_LinuxInkjetPrinter->RegisterClasses( m_LinuxErrorInterface, m_LinuxPortMonitor, m_LinuxCartridgeInterface, UtilityFolder, "Z55", true); return true; }
Lexmark Linux Printer Driver Developers Kit Z55 Sample CUPS Printer Driver Version 1.0 25
9.5 ERROR FUNCTIONS
9.5.1 General structure
The Error Functions provides error management of the sample CUPS printer driver. Such tasks involve error catching, error reporting and asking user decisions. Like the Cartridge Functions and Communications modules, the Error Functions is a user-specific implementation of the abstract module ErrorCommunicator of the LLPDDK. For this sample CUPS implementation, we call it the LinuxErrorCommunicator module. Please refer to the LLPDDK interface document for more information of the ErrorCommunicatir module.
9.5.2 Behavior 9.5.2.1 Initialization
The LinuxErrorCommunicator is created by the Adaptation Layer, specifically by the Z55 Backend component, and initialized by the LLPDDK. After successfully creation, the Z55 Backend will readily use this module for error management.
bool Z55Backend::Initialize( char * UtilityFolder, char * PrinterPort) { m_LinuxErrorInterface = new LinuxErrorCommunicator; m_LinuxInkjetPrinter->RegisterClasses( m_LinuxErrorInterface, m_LinuxPortMonitor, m_LinuxCartridgeInterface, UtilityFolder, "Z55", true); return true; }
9.6 LEXMARK LINUX PRINTER DRIVER DEVELOPERS KIT
9.6.1 General structure
The LinuxInkjetPrinter component (of the LLPDDK) is the interface of the Adaptation Layer to the Lexmark Linux Printer Driver Developers Kit. It provides attachment of important components such as the LinuxPortMonitor, LinuxCartridgeUserInterface and LinuxErrorCommunicator. These Linux-specific implementations are important for the proper functioning of the LLPDDK. The LinuxInkjetPrinter also provides the Z55 Backend the handle for the PrinterDevice, which is very important for reading cartridge and media information from the printer cache, and for sending print data to the printer device).
9.6.2 Behavior 9.6.2.1 Initialization
The Adaptation Layer, specifically the Z55 Backend component, initializes the LinuxInkjetPrinter. In order to initialize it properly, the Z55 Backend should be able to initialize properly first the LinuxPortMonitor, LinuxCartridgeUserInterface and LinuxErrorCommunicator because all these components should be passed as parameters to the register method of the LinuxInkjetPrinter.
10.1.8.4 Return Value
10.2 ADAPTATION LAYER (Z55 BACKEND)
10.2.1 main() 10.2.1.1 Description
Drives the proper functioning of the Z55 Backend application.
10.2.1.2 Prototype
10.2.1.3 Parameters
argc [in] the number of passed arguments; accepts 6 or 7 arguments only. argv [in] contains the string value of the passed arguments. o.) argv[0] is name of the printer queue. p.) argv[1] is the numeric job ID for the job being printed. q.) argv[2] is the string from the originating-user-name attribute. r.) argv[3] is the string from the job-name attribute. s.) argv[4] is the numeric value from the number-copies attribute. t.) argv[5] is the string representations of the job template attributes. u.) argv[6] is the request file.
10.2.1.4 Return Value
Lexmark Linux Printer Driver Developers Kit Z55 Sample CUPS Printer Driver Version 1.0 31
10.2.2 Z55Backend::Z55Backend() 10.2.2.1 Description
Z55Backend constructor.
10.2.2.2 Prototype
Z55Backend::Z55Backend();
10.2.2.3 Parameters
10.2.2.4 Return Value
10.2.3 Z55Backend::~Z55Backend() 10.2.3.1 Description
Z55Backend destructor.
10.2.3.2 Prototype
Z55Backend::~Z55Backend();
10.2.3.3 Parameters
10.2.3.4 Return Value
10.2.4 Z55Backend::Initialize() 10.2.4.1 Description
Performs initialization of the Z55 Backend component.
10.2.4.2 Prototype
bool Z55Backend::Initialize( char * UtilityFolder, char * PrinterPort);
Lexmark Linux Printer Driver Developers Kit Z55 Sample CUPS Printer Driver Version 1.0 32
10.2.4.3 Parameters
UtilityFolder [in] the absolute path of the Z55 utility directory. PrinterPort [in] the absolute path of the printer port to be used.
10.2.4.4 Return Value
10.2.5 Z55Backend::HandleData() 10.2.5.1 Description
Handles print data by sending it to the Lexmark printer device.
10.2.5.2 Prototype
bool Z55Backend::HandleData( int FileDescriptor);
10.2.5.3 Parameters
FileDescriptor [in] the file descriptor of the output file.
10.2.5.4 Return Value
10.2.6 Z55Backend::ListDevices() 10.2.6.1 Description
Searches and opens available printer driver USB devices.
10.2.6.2 Prototype
void Z55Backend::ListDevices();
10.2.6.3 Parameters
10.2.6.4 Return Value
Lexmark Linux Printer Driver Developers Kit Z55 Sample CUPS Printer Driver Version 1.0 33
10.2.7 Z55Backend::ExtractDeviceInfo() 10.2.7.1 Description
Extract the configuration options from the DeviceURI.
10.2.7.2 Prototype
void Z55Backend::ExtractDeviceInfo( const char * uri, char * method, char * user, char * host, char * resource, int * port);
10.2.7.3 Parameters
uri [in] the device-uri attribute of the printer. method [out] the method used for the printer. user [out] the user that can access the printer. host [out] the hostname supplied to the printer. resource [out] the USB device used by the printer. port [out] the port number to listen to.
10.2.7.4 Return Value
10.3 CARTRIDGE FUNCTIONS
10.3.1 LinuxCartridgeUserInerface::LinuxCartridgeUserInterface() 10.3.1.1 Description
The constructor of the Linux-specific implementation of the CartridgeUserInterface.
10.3.1.2 Prototype
LinuxCartridgeUserInterface::LinuxCartridgeUserInterface();
10.3.1.3 Parameters
10.3.1.4 Return Value
Lexmark Linux Printer Driver Developers Kit Z55 Sample CUPS Printer Driver Version 1.0 34
10.3.2 LinuxCartridgeUserInerface::~LinuxCartridgeUserInterface() 10.3.2.1 Description
The destructor of the LinuxCartridgeUserInterface module.
10.3.2.2 Prototype
virtual LinuxCartridgeUserInterface::~LinuxCartridgeUserInterface();
10.3.2.3 Parameters
10.3.2.4 Return Value
10.3.3 LinuxCartridgeUserInerface::CUI_VerifyCartridge() 10.3.3.1 Description
Verifies the user if new cartridges were installed as detected by the printer device. If any of the cartridges are new, it asks the user for the type of the new cartridge.
10.3.3.2 Prototype
void LinuxCartridgeUserInterface::CUI_VerifyCartridge( CartridgeManager::CM_CartridgeID & LeftID, CartridgeManager::CM_CartridgeID & RightID, CartridgeManager::CM_CartridgeAge & LeftAge, CartridgeManager::CM_CartridgeAge & RightAge);
10.3.3.3 Parameters
LeftID [in/out] refers to the left cartridge type detected. RightID [in/out] refers to the right cartridge type detected. LeftAge [in/out] refers to the left cartridge age detected. RightAge [in/out] refers to the right cartridge age detected.
10.3.3.4 Return Value
Returns a PortMonitor:PM_Error type: a.) PortMonitor::PM_ERR_SUCCESS if call is successful. b.) PortMonitor::PM_ERR_FAILED is call failed.
10.4.4 LinuxPortMonitor::PM_Open() 10.4.4.1 Description
Closes the communication port.
Lexmark Linux Printer Driver Developers Kit Z55 Sample CUPS Printer Driver Version 1.0 37
10.4.4.2 Prototype
PortMonitor::PM_Error LinuxPortMonitor::PM_Close();
10.4.4.3 Parameters
10.4.4.4 Return Value
10.4.5 LinuxPortMonitor::PM_Write() 10.4.5.1 Description
Sends data or information to the Lexmark printer device.
10.4.5.2 Prototype
long LinuxPortMonitor::PM_Write( unsigned char * buffer, unsigned long size);
10.4.5.3 Parameters
buffer [in] This contains the data to be written to the printer port. size [in] The number of bytes to be written.
10.4.5.4 Return Value
The actual number of bytes written, or -1 if a timeout or an error occurred during the write call.
10.4.6 LinuxPortMonitor::PM_Read() 10.4.6.1 Description
Reads data or information from the Lexmark printer device.
10.4.6.2 Prototype
long LinuxPortMonitor::PM_Read( unsigned char * buffer, unsigned long size);
Lexmark Linux Printer Driver Developers Kit Z55 Sample CUPS Printer Driver Version 1.0 38
10.4.6.3 Parameters
buffer [out] This will contain the data to be read from the printer port. size [in] The number of bytes to be read.
10.4.6.4 Return Value
The actual number of bytes written, or -1 if a timeout or an error occurred during the read call.
10.4.7 LinuxPortMonitor::PM_ReadNumberOfTries() 10.4.7.1 Description
Sets the number of times to read from the port if reading is not successful.
10.4.7.2 Prototype
PortMonitor::PM_Error LinuxPortMonitor::PM_ReadNumberOfTries( long numTries);
10.4.7.3 Parameters
numTries [in] the new number of retries to read from the port.
10.4.7.4 Return Value
10.4.8 LinuxPortMonitor::PM_WriteNumberOfTries() Description
Sets the number of times to write to the port if writing is not successful.
10.4.8.1 Prototype
PortMonitor::PM_Error LinuxPortMonitor::PM_WriteNumberOfTries( long numTries);
10.4.8.2 Parameters
numTries [in] the new number of retries to write to the port.
10.4.8.3 Return Value
Lexmark Linux Printer Driver Developers Kit Z55 Sample CUPS Printer Driver Version 1.0 39
10.4.9 LinuxPortMonitor::PM_RegisterEventCallback() 10.4.9.1 Description
Registers the callback function and creates a read thread.
10.4.9.2 Prototype
PortMonitor::PM_Error LinuxPortMonitor::PM_RegisterEventCallback( PM_EventCallback pfnCallback);
10.4.9.3 Parameters
pfnCallback [in] the callback function to be used.
10.4.9.4 Return Value
10.4.10 LinuxPortMonitor::PM_UnregisterEventCallback() 10.4.10.1 Description
Unregisters the callback function and destroys the read thread created earlier.
10.4.10.2 Prototype
PortMonitor::PM_Error LinuxPortMonitor::PM_UnregisterEventCallback();
10.4.10.3 Parameters
10.4.10.4 Return Value
10.4.11 LinuxPortMonitor::PM_EventPoll() 10.4.11.1 Description
This is the thread operation created by calling LinuxPortMonitor::PM_RegisterEventCallback. This is a detached thread, which runs on the background watching for changes in the communication device.
Lexmark Linux Printer Driver Developers Kit Z55 Sample CUPS Printer Driver Version 1.0 40
10.4.11.2 Prototype
static void * LinuxPortMonitor::PM_EventCallback( void * portInstance);
10.4.11.3 Parameters
portInstance [in] - The instance of the LinuxPortMonitor.
10.4.11.4 Return Value
10.4.12 LinuxPortMonitor::PM_WaitForData() 10.4.12.1 Description
Delays the executions of the calling thread until data in the port becomes available, or until a specified timeout milliseconds has elapsed. Take note that the passed parameter, timeout, is represented in milliseconds and processed as milliseconds.
10.4.12.2 Prototype
PortMonitor::PM_Error LinuxPortMonitor::PM_WaitForData( long timeout);
10.4.12.3 Parameters
Tags
SX230-2004 Serie 45 32LG5500 Pad PRO Alliance FM 212R SGH-E256 Studio Pc 900 AX-350 Roland HD-1 MDR-IF120K FAX-214 20434 DS Easyshare P880 KTM 450 M3000 Speakers Psch-L LG-C320 RA-820BX4 KX-TGA711E EM-15 Nokia 150S System Modena MP54 SF-3200 Bizhub C200 TCH-M1000 SRV-3030D 32 KW 127 X Custom AF240Z 5 1 TD200 Review Trip 4W Nikon 600 Journey B10-receiver Ad-54 Ekhbrd016AAV1 SRM5100 10 Visor L1952H-BF DEH-2250UB SGH-B200 Datalogic JET BDP-S5000ES Player SP0842N SYS II DV382 DCM-500AE P803J T220HD TC7103W Scanmaker 5900 791860 WN111 MM-ZJ9 PV-GS70D UB Plus XRX 125 Corby Wifi Dimage A2 SS-700 PLC-SU70 FX-9860G AU Lowrance X-50 - 2003 S803J F1403TDS 6200A 42LC4D ST-1000 RED WL-500G-C SWM-745 CS-NE7GKE TCD-D8 Lotus ST 5000 I8000 3DE-7886RS -III 150 TXL37D28ES UX-H35 Darkening Dvdr5520H 400TX Opticslim M12 MD160 ZWG5165 LU23-TD2 NA-16VX1 AF-9400PV2R 41804 Xellence 2 WX-C800MD
manuel d'instructions, Guide de l'utilisateur | Manual de instrucciones, Instrucciones de uso | Bedienungsanleitung, Bedienungsanleitung | Manual de Instruções, guia do usuário | инструкция | návod na použitie, Užívateľská príručka, návod k použití | bruksanvisningen | instrukcja, podręcznik użytkownika | kullanım kılavuzu, Kullanım | kézikönyv, használati útmutató | manuale di istruzioni, istruzioni d'uso | handleiding, gebruikershandleiding
Sitemap
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101








1. Lexmark Pinnacle Pro901 All in One Printer
2. Lexmark Prospect Pro205 Wireless Multifunction Inkjet Printer
3. SKYNET AC ADAPTOR 21G0315 LMK U15A LEXMARK 30 VDC 500 mA
4. C543DN Color Laser Printer
5. Lexmark E360DN Monochrome Laser Printer
6. Lexmark C540N Color Laser Printer
