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

OpenVMS V8.4 & Virtual Printer

 
Bushytea
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

3 REPLIES 3
Mike Kier
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
Hoff
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.

John Gillings
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:

;   $ MACRO NULLSYMB

;   $ LINK NULLSYMB /EXE=SYS$COMMON:[SYSEXE]NULLSYMB

;   $ INITIALIZE/QUEUE/START queue-name /ON=(node::NL:)/DEVICE=PRINTER -

;                       /PROCESSOR=NULLSYMB

;

      .LIBRARY 'SYS$SHARE:LIB'

      $PSMDEF                       ; print symbiont symbols

      $SSDEF                       ; system status symbols

      .EXTERNAL PSM$REPLACE,PSM$PRINT

 

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

      .ENTRY null_output_routine,^M<>

      MOVL #SS$_NORMAL,R0           ; and always succeeds

      RET

 

      .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