Operating System - OpenVMS
Showing results for 
Search instead for 
Did you mean: 

OpenVMS V8.4 & Virtual Printer

Occasional Advisor

OpenVMS V8.4 & Virtual Printer

Hello All,


Is there a way to setup a virtual printer in OpenVMS? Typically I need to use an IP address for any printer that I setup but for this printer I do not need one. This is just a printer for users to print unnecessary documents to.


Thanks in advance

Valued Contributor

Re: OpenVMS V8.4 & Virtual Printer

Take a look at EXECSYMB from the VMS freeware collection.


It will allow you to create queues that do whatever you want - send the file to the NLA0: device, convert it to PDF (with the appropriate text2pdf program), encrypt it, or zip it; whatever you can put into a program or script.


I've used it at multiple sites for at least 15 years - great stuff.


I'm using it where I work to slap on some <HTML> headers, copy the file across the network to a Windows directory and send an email to a distribution list with the URL of the file.

Practice Random Acts of VMS Marketing
Honored Contributor

Re: OpenVMS V8.4 & Virtual Printer

Mike's EXECSYMB suggestion can and will work here, but a null symbiont is a slightly more direct path to nowhere.  Beyond EXECSYMB and a null symbiont, there are other options, too.

Honored Contributor

Re: OpenVMS V8.4 & Virtual Printer

From my archive, a very simple null symbiont, with instructions


      .TITLE NullSymbiont


; Module implements a null symbiont - jobs entered on a queue using this

; symbiont will complete without producing any output.


; Author: John Gillings, Systems Software Consultant

;                         Digital Equipment Corporation

;                         Customer Support Centre

;                         Sydney, Australia


; Translated from C example by John COMEUP:: Simmonds for use on systems

; which have no C compiler.


; Build:




;                       /PROCESSOR=NULLSYMB



      $PSMDEF                       ; print symbiont symbols

      $SSDEF                       ; system status symbols



      .PSECT code,EXE,NOWRT         ; printing routine, does nothing

      .ENTRY null_output_routine,^M<>

      MOVL #SS$_NORMAL,R0           ; and always succeeds



      .ENTRY Start,^M<>

      PUSHAB null_output_routine   ; use null printing routine

      PUSHAL      #PSM$K_OUTPUT           ; for output

      CALLS       #2,G^PSM$REPLACE

      BLBC  R0,1$                   ; abort on error


      PUSHAL      #2048             ; buffer size

      PUSHAL      #16               ; accept 16 streams

      CALLS #2,G^PSM$PRINT          ; Start the symbiont


1$:   RET

      .END Start

A crucible of informative mistakes