Printing from AS400 / IBM i to Windows via LPR — the complete setup

The standard way to get spooled files off an IBM i and onto a Windows server is a remote output queue (RMTOUTQ) sending over LPR to port 515. This guide covers both ends: the CRTOUTQ configuration on the IBM i, and — now that Microsoft has deprecated its Windows LPD service — what to run on the Windows side to receive the jobs reliably.

Step 1 — Put a reliable LPD receiver on the Windows server

Something on the Windows server must listen on TCP 515 and speak RFC 1179. The built-in Microsoft LPD Print Service is deprecated and scheduled for removal, and in high-volume use it is known to drop jobs silently. Install AmazeLPD instead: it installs as a Windows service, listens on 515 (LPR) and 631 (IPP), acknowledges each job only after it is durably spooled to disk, and records every job in an auditable history. The 7-day trial is the full product.

In AmazeLPD Manager, create a queue — for example INVOICES — and set its destination (a Windows printer, or a REST endpoint for a document platform). The queue name is what the IBM i will address as RMTPRTQ. Queue names are case-sensitive on many LPR implementations, so pick one case and use it on both ends.

Step 2 — Create the remote output queue on the IBM i

On a 5250 session, create the output queue with CRTOUTQ:

CRTOUTQ OUTQ(QUSRSYS/INVOICES) RMTSYS(*INTNETADR) RMTPRTQ('INVOICES') AUTOSTRWTR(1) CNNTYPE(*IP) DESTTYPE(*OTHER) TRANSFORM(*NO) INTNETADR('192.168.1.50') TEXT('Invoices to Windows / AmazeLPD')
ParameterWhat it does
RMTSYS(*INTNETADR)Address the remote system by IP rather than a host-table name.
RMTPRTQ('INVOICES')The queue name on the Windows side — must match the AmazeLPD queue name exactly, including case.
AUTOSTRWTR(1)Starts one remote writer automatically when the system starts.
CNNTYPE(*IP) / DESTTYPE(*OTHER)Plain TCP/IP LPR to a non-IBM destination.
TRANSFORM(*NO)Send the spooled data as-is. Use TRANSFORM(*YES) with a MFRTYPMDL workstation customisation object only if you need host print transform to convert SCS/AFP to a printer data stream first.
INTNETADR('…')The IP address of the Windows server running the LPD receiver.

Parameter set is the standard IBM remote-output-queue configuration; exact options vary slightly by IBM i release. TRANSFORM/MFRTYPMDL choice depends on whether the receiving platform expects raw SCS/AFP or a rendered printer stream.

Step 3 — Start the writer and test

  1. Start the remote writer: STRRMTWTR OUTQ(QUSRSYS/INVOICES) (skip if AUTOSTRWTR(1) already started it — check with WRKOUTQ INVOICES).
  2. Send a test: place any spooled file on the queue, e.g. WRKSPLF, option 2 to change its OUTQ to INVOICES.
  3. Confirm on Windows: the job appears in AmazeLPD's job history as Received → Processed → Completed, with logs. If the destination is down, the job holds as Pending instead of vanishing — the difference between AmazeLPD and the old Microsoft service.
  4. If nothing arrives: check port 515 is reachable (telnet 192.168.1.50 515 from another host, or firewall rules), the writer is started (WRKWTR), and the queue names match exactly.

Frequently asked questions

Do I need to change the AS400 side when Microsoft removes the Windows LPD service?
No — that's the point of a drop-in replacement. The RMTOUTQ keeps sending standard LPR to port 515; only the receiver on the Windows server changes. If AmazeLPD is installed there, the IBM i configuration above works unmodified.
Can one Windows server receive many AS400 output queues?
Yes. Create one AmazeLPD queue per RMTPRTQ name — each with its own destination and parameters. Queues process concurrently (one worker each), so a busy queue never blocks the others, and hundreds of queues can be imported from CSV in one step.
Should I use TRANSFORM(*YES) or TRANSFORM(*NO)?
TRANSFORM(*NO) sends the spooled data unchanged — right when the receiving platform understands the data stream or you're forwarding to a document-processing system. TRANSFORM(*YES) with the right MFRTYPMDL renders SCS/AFP into a printer language (e.g. PCL) first — right when the final destination is a physical printer expecting that language.

Start the free 7-day trial   Read the LPD deprecation guide