Setting up a printer
So you need to set up a printer?
Basically, you've got three choices:
- A TCP/IP network attached printer
- A 5250 workstation 5250 attached printer
- A twinax attached printer
The twinax option is unlikely to be used for a new printer, given that POWER6 and newer hardware don't even support twinax.
Workstation attached printers are dependant on the type of workstation.
Which leaves TCP/IP (aka LAN) attached printers.
The place to start is this IBM technical document #N1019492 - Options to Configure a Printer on an IBM i System
The above document lays out 4 options for printing to a TCP/IP network attached printer.
- A *LAN *IPDS device description
- A *LAN 3812 SNMP device description
- A *LAN 3812 IPP device description
- A *LAN 3812 PJL device description
- A Remote Output Queue (RMTOUTQ) (also known as LPD/[LPR]]
The list above as been reordered from the list shown in the IBM document based upon order of preference. A *LAN *IPDS device is the most preferred option for an IBM System i network printer; while a Remote Output Queue is the least preferred. The relative preference of SNMP, IPP, and PJL are subjective and based upon the SNMP vs IPP thread in the comp.sys.ibm.as400.misc newsgroup.
The IBM technical document includes links to detailed instructions for setting up each of the above options along with links to lists that tell you which option is supported for various printers from most manufactures.
Note: You can't define a *LAN *IPDS device description unless the printer actually supports *IPDS
For the most part, printers that support IPDS are available under the IBM/InfoPrint/Ricoh brand name. However, you can find other few other business printer manufactures that offer IPDS support and a few third parties that make IPDS personality chips for non IBM/InfoPrint/Ricoh printers; primarily for HP printers as HP doesn't offer native IPDS support in any of its products.
Lexmark manufactured earlier models of InfoPrint printers and as such also offers good IPDS modules for it's T-Series of printers.
Depending on the IPDS module you're using, you will need to be using either Port 5001, 9100 or 9600.
Additionally, a *LAN *IPDS device description requires that the "Print Services Facility for IBM i" (PSF for i) licensed program be installed. PSF for i is a chargeable optional component of the OS. (5722-SS1 for V5, 5761-SS1 for V6, or 5770-SS1 for V7, Option 36, 37, or 38)
As an alternative to IPDS modules, there's also IPDS-to-PCL software solutions out there. Most of them run under Windows.
When printing to an ASCII printer (known to the rest of the world as "PCL printers"), configured as a *LAN 3812 SNMP/IPP/PJL device description or via a remote output queue, a component of the OS known as "Host Print Transform" (HPT) is responsible for converting the native EBCDIC data into ASCII that the printer can understand. HPT is built into the OS and is always available.
Host Print Transform
HPT can transform spool files with a printer device type (DEVTYPE) of *SCS or *AFPDS. However, it can not transform spool files of type *IPDS. This is not usually a problem as you can usually change the printer file from DEVTYPE(*IPDS) to DEVTYPE(*AFPDS) without ill effect. The functionality available in a *IPDS printer file is a subset of the functionality available to an *AFPDS printer file.
- Dot matrix ASCII printers are not supported. Since these printers do not support absolute movement, even text does not print correctly. Text prints as one long string.
- The transform does not support AFP graphics (GOCA) commands. For example, pie charts generated by BGU or GDF files imbedded in the spooled file will not print.
- The transform ignores the fidelity attribute of the spooled file and always performs content printing.
- The transform does not support COR and multi-up printing.
- The transform does not support color barcodes.
- At this time, the transform can only produce 240 or 300 dpi images.
- Use of the AFPRSC keyword in DDS.
HPT does support printing barcodes to ASCII attached LAN printers. However, you'll need to be on v5r4 or higher in order to print 2D barcodes such MaxiCode (used by UPS), PDF417, and Data Matrix. See the IBM technical document #13481357 - IBM OS/400 Support for Two-Dimensional Bar Codes - MaxiCode, PDF417 and Data Matrix.
AFPDS vs. IPDS
In the IBM i world of the printing, AFPDS vs. IPDS can be very confusing. Basically, IPDS is the name of a data stream and a communication's protocol. AFPDS is the name of a data stream.
- The IPDS data stream uses the IPDS protocol.
- The AFPDS data stream also uses the IPDS protocol.
You can think of the IPDS data stream as a subset of the AFPDS data stream. Everything you can use in a printer file defined with DEVTYPE(*IPDS) can be used in one defined with DEVTYPE(*AFPDS). The reverse is not true. A printer file defined with DEVTYPE(*AFPDS) can have functionality not available in a printer file defined with DEVTYPE(*IPDS). For this reason, the *AFPDS data stream is preferred over the *IPDS data stream.
A printer that supports the IPDS protocol is called an IPDS printer and such a printer can accept both the IPDS and the AFPDS data streams. That being the case, what controls which data stream is sent to the printer? The answer lays is how the device description is defined on the server side.
- "CRTDEVPRT DEVD(PRT01) TYPE(*IPDS) AFP(*NO)" results in the *IPDS data stream being used.
- "CRTDEVPRT DEVD(PRT01) TYPE(*IPDS) AFP(*YES)" results in the *AFPDS data stream being used.
Note: in order to specify AFP(*YES), PSF for i is required.
- Printers defined with TYPE(*IPDS) AFP(*NO) can handle spool files (data streams) of *SCS and *IPDS.
- Printers defined with TYPE(*IPDS) AFP(*YES) can handle spool files (data streams) of *SCS, *IPDS, and *AFPDS.
For more detailed information regarding printing on the IBM i, please see the IBM AS/400 Printing V Redbook.