Search code examples
printingibm-midrangerpgle

Can a circle be printed/drawn in a printfile with DDS?


Using DDS I know I can print a box and color it in using the the BOX keyword:

A          R BOX5                      BOX(2.5 0.5 5.1 6.3 0.2 +
A                                      (*COLOR *HIGHLIGHT 3 75)

Is there something similar to create a circle?


Solution

  • According to the DDS Reference: No. I can't find any keywords to directly draw a circle.

    My guess is that back in the heyday of high volume impact printers, there was no fast way to print such circles. Note: Impact isn't necessarily the same as dot-matrix printers. Lines were possible with special characters, though. The "language" to steer such a printer was called SCS (SNA Character String).

    But you can create a circle as desired with external programs, convert the result to a page segment, using specialized IBM software, and load that via DDS onto a page. See the PAGSEG keyword on the linked documentation for information and caveats. Especially the need to use AFP might pose a serious obstacle. (AFP is — overly simplified and thus not entirely correct — like PCL or PostScript, a page description language. IPDS can be roughly seen as equivalent to PJL.) Ricoh printers sometimes have native IPDS/AFP support. Also, there were some manufacturers for converter boxes, faking an SCS or even IPDS/AFP printer to the host side, and appearing as a PJL/PCL printer data generator to the printer.

    The built-in Host Print Transform feature which can be enabled for printer devices converts the spooled output to PCL, so it can be sent to stock printers. The drawback is, it uses local CPU resources which might not be desired. Older releases of the OS might only support SCS with Host Print Transform.

    Newer IBM I releases include InfoPrint Server, a java-based background task enabling to convert print jobs on the machine to PDF. I assume this should work with AFP. Not talking about resource usage, though…

    Printing on IBM i is a deep rabbit hole in itself. See the accompanying documentation.