Discussion:
printing PDF from VMS
(too old to reply)
Phillip Helbig (undress to reply)
2021-04-23 11:31:08 UTC
Permalink
Thanks to all with suggestions for setting up print queues. I now have:

$ sh que/ful sys$print
Generic printer queue SYS$PRINT
/GENERIC=(JANDER_PRINT,LEEBIG_PRINT,MINNIM_PRINT,AAAAAA_PRINT)
/OWNER=[SYSTEM] /PROTECTION=(S:M,O:D,G:R,W:S)

All of the execution queues are set up the same and look like this:

$ sh que /fu JANDER_PRINT
Printer queue JANDER_PRINT, idle, on JANDER::"192.168.1.21:9100",
mounted form DEFAULT
/BASE_PRIORITY=4 /DEFAULT=(FORM=DEFAULT) Lowercase /OWNER=[SYSTEM]
/PROCESSOR=TCPIP$TELNETSYM /NO_INITIAL_FF
/PROTECTION=(S:M,O:D,G:R,W:SM)
/SCHEDULE=(NOSIZE)

Works fine for text and PostScript, but not for PDF, though PDF can be
printed from other devices. I don't know if those other devices convert
the PDF to something else behind the scenes.

Is there any chance that using TCPIP$LPD_SMB and port 631 would make
that possible?

Do I need to mess with SYS$SPECIFIC:[TCPIP$LPD]TCPIP$PRINTCAP.DAT?

Sending a PDF file via the queue above gives a message that directly
printing PDF is not supported, so the printer does recognize it as a PDF
file. It seems strange that a new printer can print PostScript but not
PDF (at least not from VMS via the queue above).
Jan-Erik Söderholm
2021-04-23 12:02:12 UTC
Permalink
Post by Phillip Helbig (undress to reply)
$ sh que/ful sys$print
Generic printer queue SYS$PRINT
/GENERIC=(JANDER_PRINT,LEEBIG_PRINT,MINNIM_PRINT,AAAAAA_PRINT)
/OWNER=[SYSTEM] /PROTECTION=(S:M,O:D,G:R,W:S)
$ sh que /fu JANDER_PRINT
Printer queue JANDER_PRINT, idle, on JANDER::"192.168.1.21:9100",
mounted form DEFAULT
/BASE_PRIORITY=4 /DEFAULT=(FORM=DEFAULT) Lowercase /OWNER=[SYSTEM]
/PROCESSOR=TCPIP$TELNETSYM /NO_INITIAL_FF
/PROTECTION=(S:M,O:D,G:R,W:SM)
/SCHEDULE=(NOSIZE)
Works fine for text and PostScript, but not for PDF, though PDF can be
printed from other devices. I don't know if those other devices convert
the PDF to something else behind the scenes.
Is there any chance that using TCPIP$LPD_SMB and port 631 would make
that possible?
I see no reason wny the network protocol would make a major
difference when it comes to he printing emulations supported.
Post by Phillip Helbig (undress to reply)
Do I need to mess with SYS$SPECIFIC:[TCPIP$LPD]TCPIP$PRINTCAP.DAT?
From examples shown before, it seems that you do not strictly has to.
But it is the usual way to set up LPD.
Post by Phillip Helbig (undress to reply)
Sending a PDF file via the queue above gives a message that directly
printing PDF is not supported, so the printer does recognize it as a PDF
file. It seems strange that a new printer can print PostScript but not
PDF (at least not from VMS via the queue above).
*My* best guess is that printout of PDF *is* supported, *if* it is done
through a driver that takes care of the conversion to a printer
language/emulation that the printer understands.
Simon Clubley
2021-04-23 12:54:54 UTC
Permalink
Post by Phillip Helbig (undress to reply)
Works fine for text and PostScript, but not for PDF, though PDF can be
printed from other devices. I don't know if those other devices convert
the PDF to something else behind the scenes.
Three ideas:

1) Try print/passall

2) Find and try a PDF 1.0 document

3) Use Ghostscript to write out a Postscript version of the PDF. If this
works, turn it into a small command procedure that does the conversion
and then queues the Postscript file.
Post by Phillip Helbig (undress to reply)
Is there any chance that using TCPIP$LPD_SMB and port 631 would make
that possible?
Port 631 is CUPS.

Simon.
--
Simon Clubley, ***@remove_me.eisner.decus.org-Earth.UFP
Walking destinations on a map are further away than they appear.
Norbert Schönartz
2021-04-23 16:38:05 UTC
Permalink
Post by Phillip Helbig (undress to reply)
$ sh que/ful sys$print
Generic printer queue SYS$PRINT
/GENERIC=(JANDER_PRINT,LEEBIG_PRINT,MINNIM_PRINT,AAAAAA_PRINT)
/OWNER=[SYSTEM] /PROTECTION=(S:M,O:D,G:R,W:S)
$ sh que /fu JANDER_PRINT
Printer queue JANDER_PRINT, idle, on JANDER::"192.168.1.21:9100",
mounted form DEFAULT
/BASE_PRIORITY=4 /DEFAULT=(FORM=DEFAULT) Lowercase /OWNER=[SYSTEM]
/PROCESSOR=TCPIP$TELNETSYM /NO_INITIAL_FF
/PROTECTION=(S:M,O:D,G:R,W:SM)
/SCHEDULE=(NOSIZE)
Works fine for text and PostScript, but not for PDF, though PDF can be
printed from other devices. I don't know if those other devices convert
the PDF to something else behind the scenes.
I have a brother MFC-L3730CDN which seems to be rather similar. I also
had no luck in printing PDF documents. Postcript and text documents are
printed correctly.

However, I suggest using a DCPS queue. You then have the possibility to
format text documents e. g. with line numbers and use DCPS parameters
like PAGE_RANGE, NUMBER_UP and so on.

In DCPS_STARTUP.COM I added the following lines to define the queue
COLORLASER:

$ DEFINE /EXEC /SYSTEM DCPS$COLORLASER_PRODUCT_NAME "HPGENERIC"
$!
$ ON ERROR THEN CONTINUE
$ IF .NOT. SETUP_MODE THEN @SYS$STARTUP:DCPS$EXECUTION_QUEUE -
COLORLASER - ! P1 - Execution queue name
AUTO=(RX2660,ZX2000)::"IP_LPD/brother-mfc-l3730cdn:9100" - ! P2
DCPS_LIB - ! P3 - Logical name for library(ies)
"" - ! P4 - Default queue parameters
"/SEPARATE=(NOBURST,NOTRAILER)" - ! P5 - Default queue qualifiers
"" - ! P6 - Communication speed (serial only)
"" - ! P7 - Device characteristics
"" ! P8 - Verify on/off
$!

After starting DCPS the queue is shown as:

rx2660_sys$ sh que/fu colorlaser
Printer queue COLORLASER, idle, on RX2660::DCPS$, mounted form DCPS$DEFAULT
(stock=DEFAULT)
/AUTOSTART_ON=(RX2660::DCPS$,ZX2000::DCPS$) /BASE_PRIORITY=4
/DEFAULT=(FORM=DCPS$DEFAULT (stock=DEFAULT)) /NOENABLE_GENERIC
/LIBRARY=DCPS_LIB Lowercase /OWNER=[SYSTEM] /PROCESSOR=DCPS$SMB
/PROTECTION=(S:M,O:D,G:R,W:S) /SCHEDULE=(NOSIZE)
rx2660_sys$

There is one disadvantage to your solution: When trying to print a PDF
document no error sheet is printed. Instead, the PDF seems to be
recognized as text and lots of sheets of waste are printed.

A DCPS raw TCP queue (which should be better since raw TCP is
bidirectional) did not work. Th printer always showed "receiving data"
and did not print anything.
Phillip Helbig (undress to reply)
2021-04-23 17:10:12 UTC
Permalink
Post by Norbert Schönartz
Post by Phillip Helbig (undress to reply)
$ sh que /fu JANDER_PRINT
Printer queue JANDER_PRINT, idle, on JANDER::"192.168.1.21:9100",
mounted form DEFAULT
/BASE_PRIORITY=4 /DEFAULT=(FORM=DEFAULT) Lowercase /OWNER=[SYSTEM]
/PROCESSOR=TCPIP$TELNETSYM /NO_INITIAL_FF
/PROTECTION=(S:M,O:D,G:R,W:SM)
/SCHEDULE=(NOSIZE)
Works fine for text and PostScript, but not for PDF, though PDF can be
printed from other devices. I don't know if those other devices convert
the PDF to something else behind the scenes.
I have a brother MFC-L3730CDN which seems to be rather similar. I also
had no luck in printing PDF documents. Postcript and text documents are
printed correctly.
However, I suggest using a DCPS queue. You then have the possibility to
format text documents e. g. with line numbers and use DCPS parameters
like PAGE_RANGE, NUMBER_UP and so on.
There is one disadvantage to your solution: When trying to print a PDF
document no error sheet is printed. Instead, the PDF seems to be
recognized as text and lots of sheets of waste are printed.
No; sending a PDF via the queue above results in a page being printed
out saying that direct printing of PDF files is not supported. (So the
printer does know that it is getting PDF.)
Simon Clubley
2021-04-23 17:15:04 UTC
Permalink
Post by Phillip Helbig (undress to reply)
No; sending a PDF via the queue above results in a page being printed
out saying that direct printing of PDF files is not supported. (So the
printer does know that it is getting PDF.)
Add an option 4) to my previous list: If something like netcat is
available for VMS, then use it to send the PDF directly to the
JetDirect port (port 9100) to eliminate the possibility that the
VMS printer queue is messing up the PDF contents.

BTW, have you been able to try any of my suggestions yet ?

Simon.
--
Simon Clubley, ***@remove_me.eisner.decus.org-Earth.UFP
Walking destinations on a map are further away than they appear.
Norbert Schönartz
2021-04-23 17:27:48 UTC
Permalink
Post by Phillip Helbig (undress to reply)
Post by Norbert Schönartz
Post by Phillip Helbig (undress to reply)
$ sh que /fu JANDER_PRINT
Printer queue JANDER_PRINT, idle, on JANDER::"192.168.1.21:9100",
mounted form DEFAULT
/BASE_PRIORITY=4 /DEFAULT=(FORM=DEFAULT) Lowercase /OWNER=[SYSTEM]
/PROCESSOR=TCPIP$TELNETSYM /NO_INITIAL_FF
/PROTECTION=(S:M,O:D,G:R,W:SM)
/SCHEDULE=(NOSIZE)
Works fine for text and PostScript, but not for PDF, though PDF can be
printed from other devices. I don't know if those other devices convert
the PDF to something else behind the scenes.
I have a brother MFC-L3730CDN which seems to be rather similar. I also
had no luck in printing PDF documents. Postcript and text documents are
printed correctly.
However, I suggest using a DCPS queue. You then have the possibility to
format text documents e. g. with line numbers and use DCPS parameters
like PAGE_RANGE, NUMBER_UP and so on.
There is one disadvantage to your solution: When trying to print a PDF
document no error sheet is printed. Instead, the PDF seems to be
recognized as text and lots of sheets of waste are printed.
No; sending a PDF via the queue above results in a page being printed
out saying that direct printing of PDF files is not supported. (So the
printer does know that it is getting PDF.)
Unfortunately my words were misleading, sorry. What I wanted to say was
"There is one disadvantage compared to your solution": Using your telnet
queue an error page is printed, while the DCPS queue prints lots of
unreadable sheets. But in my opinion the formatting options when using
DCPS far outweigh this disadvantage. If we know that it is not possible
to print PDFs we will not try it...
--
Norbert
Mark Berryman
2021-04-23 20:47:37 UTC
Permalink
Post by Phillip Helbig (undress to reply)
$ sh que/ful sys$print
Generic printer queue SYS$PRINT
/GENERIC=(JANDER_PRINT,LEEBIG_PRINT,MINNIM_PRINT,AAAAAA_PRINT)
/OWNER=[SYSTEM] /PROTECTION=(S:M,O:D,G:R,W:S)
$ sh que /fu JANDER_PRINT
Printer queue JANDER_PRINT, idle, on JANDER::"192.168.1.21:9100",
mounted form DEFAULT
/BASE_PRIORITY=4 /DEFAULT=(FORM=DEFAULT) Lowercase /OWNER=[SYSTEM]
/PROCESSOR=TCPIP$TELNETSYM /NO_INITIAL_FF
/PROTECTION=(S:M,O:D,G:R,W:SM)
/SCHEDULE=(NOSIZE)
Works fine for text and PostScript, but not for PDF, though PDF can be
printed from other devices. I don't know if those other devices convert
the PDF to something else behind the scenes.
Is there any chance that using TCPIP$LPD_SMB and port 631 would make
that possible?
Do I need to mess with SYS$SPECIFIC:[TCPIP$LPD]TCPIP$PRINTCAP.DAT?
Sending a PDF file via the queue above gives a message that directly
printing PDF is not supported, so the printer does recognize it as a PDF
file. It seems strange that a new printer can print PostScript but not
PDF (at least not from VMS via the queue above).
You have set up a symbiont pointing to port 9100. Port 9100 is
variously known as RAW printing, JetDirect, or AppSocket. That port is
designed to simply receive a file and print it. It does not do any
processing. Typically, it will only accept text files and files in
whatever format is configured as the native language of the printer. In
all of the printers I have seen, that is either some form of Postscript
or PCL. It would appear that the native language of your printer is
Postscript which is why you can print text files and postscript files
but nothing else.

If you were to set up an LPD queue, it is possible that you could
successfully print a PDF file in that manner.

Unless you are running Multinet, it is unlikely that you have a symbiont
supporting IPP so pointing your symbiont at port 631 will not help since
port 631 is for the Internet Printing Protocol (IPP). If you use the
LPD symbiont, it will need to use port 515.

The other devices that can successfully print PDF files on this printer
are almost certainly using IPP (or AirPrint, a superset of IPP). It is
unlikely that they are transforming the file behind the scenes.

To all,

I have sent Philip a utility he can use to query the capabilities of his
printer and also use to print any type file his printer supports
(updated, since I left a spurious check in the first version I sent
him). This utility should work as far back as V7.3-2.

If anyone else would like to try it, you will find it here:
https://theberrymans.com/php_kits/ipp.zip

If you do happen to try it, feedback is encouraged.

Mark Berryman
Phillip Helbig (undress to reply)
2021-04-24 07:08:31 UTC
Permalink
Post by Mark Berryman
You have set up a symbiont pointing to port 9100. Port 9100 is
variously known as RAW printing, JetDirect, or AppSocket. That port is
designed to simply receive a file and print it. It does not do any
processing. Typically, it will only accept text files and files in
whatever format is configured as the native language of the printer. In
all of the printers I have seen, that is either some form of Postscript
or PCL. It would appear that the native language of your printer is
Postscript which is why you can print text files and postscript files
but nothing else.
The printer claims to support (whatever that means) PostScript AND PDF.
So it seems strange that it can print one natively but not the other.
Post by Mark Berryman
If you were to set up an LPD queue, it is possible that you could
successfully print a PDF file in that manner.
I'll give it a try.

Thanks to all who have made suggestions. I'll definitely take them all
into account and would like to get it working. However, since the
printer now does 99% of what I need, and other items in my queue are
higher priority, it might be a week or two before I get around to it.
Post by Mark Berryman
Unless you are running Multinet, it is unlikely that you have a symbiont
supporting IPP so pointing your symbiont at port 631 will not help since
port 631 is for the Internet Printing Protocol (IPP). If you use the
LPD symbiont, it will need to use port 515.
OK.
Post by Mark Berryman
The other devices that can successfully print PDF files on this printer
are almost certainly using IPP (or AirPrint, a superset of IPP). It is
unlikely that they are transforming the file behind the scenes.
Definitely AirPrint, as they are all Apple devices.

Technical question: in the case of AirPrint, is the PDF transformed into
something else and if so, what and where?
Post by Mark Berryman
I have sent Philip a utility he can use to query the capabilities of his
printer and also use to print any type file his printer supports
(updated, since I left a spurious check in the first version I sent
him). This utility should work as far back as V7.3-2.
https://theberrymans.com/php_kits/ipp.zip
If you do happen to try it, feedback is encouraged.
Thanks very much. As you note, the first version had some problems, but
I'll try to take a look at the new version sometime this weekend.
Norbert Schönartz
2021-04-24 13:54:32 UTC
Permalink
Post by Phillip Helbig (undress to reply)
$ sh que/ful sys$print
Generic printer queue SYS$PRINT
   /GENERIC=(JANDER_PRINT,LEEBIG_PRINT,MINNIM_PRINT,AAAAAA_PRINT)
   /OWNER=[SYSTEM] /PROTECTION=(S:M,O:D,G:R,W:S)
$ sh que /fu JANDER_PRINT
Printer queue JANDER_PRINT, idle, on JANDER::"192.168.1.21:9100",
mounted form DEFAULT
   /BASE_PRIORITY=4 /DEFAULT=(FORM=DEFAULT) Lowercase /OWNER=[SYSTEM]
   /PROCESSOR=TCPIP$TELNETSYM /NO_INITIAL_FF
/PROTECTION=(S:M,O:D,G:R,W:SM)
   /SCHEDULE=(NOSIZE)
Works fine for text and PostScript, but not for PDF, though PDF can be
printed from other devices.  I don't know if those other devices convert
the PDF to something else behind the scenes.
Is there any chance that using TCPIP$LPD_SMB and port 631 would make
that possible?
Do I need to mess with SYS$SPECIFIC:[TCPIP$LPD]TCPIP$PRINTCAP.DAT?
Sending a PDF file via the queue above gives a message that directly
printing PDF is not supported, so the printer does recognize it as a PDF
file.  It seems strange that a new printer can print PostScript but not
PDF (at least not from VMS via the queue above).
You have set up a symbiont pointing to port 9100.  Port 9100 is
variously known as RAW printing, JetDirect, or AppSocket.  That port is
designed to simply receive a file and print it.  It does not do any
processing.  Typically, it will only accept text files and files in
whatever format is configured as the native language of the printer.  In
all of the printers I have seen, that is either some form of Postscript
or PCL.  It would appear that the native language of your printer is
Postscript which is why you can print text files and postscript files
but nothing else.
If you were to set up an LPD queue, it is possible that you could
successfully print a PDF file in that manner.
Unless you are running Multinet, it is unlikely that you have a symbiont
supporting IPP so pointing your symbiont at port 631 will not help since
port 631 is for the Internet Printing Protocol (IPP).  If you use the
LPD symbiont, it will need to use port 515.
The other devices that can successfully print PDF files on this printer
are almost certainly using IPP (or AirPrint, a superset of IPP).  It is
unlikely that they are transforming the file behind the scenes.
To all,
I have sent Philip a utility he can use to query the capabilities of his
printer and also use to print any type file his printer supports
(updated, since I left a spurious check in the first version I sent
him).  This utility should work as far back as V7.3-2.
https://theberrymans.com/php_kits/ipp.zip
If you do happen to try it, feedback is encouraged.
Mark Berryman
I tried the ipp show command of your ipp tool (IA64 version) with my
brother MFC-L3730CDN printer and it gave a lot of useful inormation
about the printer's capabilities. As for PDF support the result was:

pdf-versions-supported: none

This seems to indicate that the printer does not natively support PDF
files. This is in accordance with my failed attempts these files.

Unfortunately I could not use the tool for printing anything. The ipp
show command gave the following result for printer-uri-supported:

printer-uri-supported: ipp://192.168.1.70/ipp/print

Using this I tried

$ ipp print SYS$COMMON:[SYSMGR]TFF$SYSTARTUP.COM;1 -
/device_url=ipp://192.168.1.70/ipp/print

and got the following error message:

%DCL-W-NOKEYW, qualifier name is missing - append the name to the slash

Also tried using the DNS name - same result.

Following your hint I changed the port from 9100 to 515 in my DCPS setup
file, but there is no change in the behaviour. It works exactly the same
way as with port 9100 before.
--
Norbert
Jan-Erik Söderholm
2021-04-24 13:58:18 UTC
Permalink
Post by Norbert Schönartz
Post by Phillip Helbig (undress to reply)
$ sh que/ful sys$print
Generic printer queue SYS$PRINT
   /GENERIC=(JANDER_PRINT,LEEBIG_PRINT,MINNIM_PRINT,AAAAAA_PRINT)
   /OWNER=[SYSTEM] /PROTECTION=(S:M,O:D,G:R,W:S)
$ sh que /fu JANDER_PRINT
Printer queue JANDER_PRINT, idle, on JANDER::"192.168.1.21:9100",
mounted form DEFAULT
   /BASE_PRIORITY=4 /DEFAULT=(FORM=DEFAULT) Lowercase /OWNER=[SYSTEM]
   /PROCESSOR=TCPIP$TELNETSYM /NO_INITIAL_FF
/PROTECTION=(S:M,O:D,G:R,W:SM)
   /SCHEDULE=(NOSIZE)
Works fine for text and PostScript, but not for PDF, though PDF can be
printed from other devices.  I don't know if those other devices convert
the PDF to something else behind the scenes.
Is there any chance that using TCPIP$LPD_SMB and port 631 would make
that possible?
Do I need to mess with SYS$SPECIFIC:[TCPIP$LPD]TCPIP$PRINTCAP.DAT?
Sending a PDF file via the queue above gives a message that directly
printing PDF is not supported, so the printer does recognize it as a PDF
file.  It seems strange that a new printer can print PostScript but not
PDF (at least not from VMS via the queue above).
You have set up a symbiont pointing to port 9100.  Port 9100 is variously
known as RAW printing, JetDirect, or AppSocket.  That port is designed to
simply receive a file and print it.  It does not do any processing.
Typically, it will only accept text files and files in whatever format is
configured as the native language of the printer.  In all of the printers
I have seen, that is either some form of Postscript or PCL.  It would
appear that the native language of your printer is Postscript which is
why you can print text files and postscript files but nothing else.
If you were to set up an LPD queue, it is possible that you could
successfully print a PDF file in that manner.
Unless you are running Multinet, it is unlikely that you have a symbiont
supporting IPP so pointing your symbiont at port 631 will not help since
port 631 is for the Internet Printing Protocol (IPP).  If you use the LPD
symbiont, it will need to use port 515.
The other devices that can successfully print PDF files on this printer
are almost certainly using IPP (or AirPrint, a superset of IPP).  It is
unlikely that they are transforming the file behind the scenes.
To all,
I have sent Philip a utility he can use to query the capabilities of his
printer and also use to print any type file his printer supports
(updated, since I left a spurious check in the first version I sent
him).  This utility should work as far back as V7.3-2.
https://theberrymans.com/php_kits/ipp.zip
If you do happen to try it, feedback is encouraged.
Mark Berryman
I tried the ipp show command of your ipp tool (IA64 version) with my
brother MFC-L3730CDN printer and it gave a lot of useful inormation about
pdf-versions-supported:        none
This seems to indicate that the printer does not natively support PDF
files. This is in accordance with my failed attempts these files.
Unfortunately I could not use the tool for printing anything. The ipp show
printer-uri-supported:         ipp://192.168.1.70/ipp/print
Using this I tried
$ ipp print SYS$COMMON:[SYSMGR]TFF$SYSTARTUP.COM;1 -
/device_url=ipp://192.168.1.70/ipp/print
%DCL-W-NOKEYW, qualifier name is missing - append the name to the slash
Also tried using the DNS name - same result.
Following your hint I changed the port from 9100 to 515 in my DCPS setup
file, but there is no change in the behaviour. It works exactly the same
way as with port 9100 before.
Maybe confused by the double "//" in the command.
Have you tried with /device_url="ipp://192.168.1.70" ?
Norbert Schönartz
2021-04-24 14:13:02 UTC
Permalink
Post by Jan-Erik Söderholm
Post by Norbert Schönartz
Post by Phillip Helbig (undress to reply)
$ sh que/ful sys$print
Generic printer queue SYS$PRINT
   /GENERIC=(JANDER_PRINT,LEEBIG_PRINT,MINNIM_PRINT,AAAAAA_PRINT)
   /OWNER=[SYSTEM] /PROTECTION=(S:M,O:D,G:R,W:S)
$ sh que /fu JANDER_PRINT
Printer queue JANDER_PRINT, idle, on JANDER::"192.168.1.21:9100",
mounted form DEFAULT
   /BASE_PRIORITY=4 /DEFAULT=(FORM=DEFAULT) Lowercase /OWNER=[SYSTEM]
   /PROCESSOR=TCPIP$TELNETSYM /NO_INITIAL_FF
/PROTECTION=(S:M,O:D,G:R,W:SM)
   /SCHEDULE=(NOSIZE)
Works fine for text and PostScript, but not for PDF, though PDF can be
printed from other devices.  I don't know if those other devices convert
the PDF to something else behind the scenes.
Is there any chance that using TCPIP$LPD_SMB and port 631 would make
that possible?
Do I need to mess with SYS$SPECIFIC:[TCPIP$LPD]TCPIP$PRINTCAP.DAT?
Sending a PDF file via the queue above gives a message that directly
printing PDF is not supported, so the printer does recognize it as a PDF
file.  It seems strange that a new printer can print PostScript but not
PDF (at least not from VMS via the queue above).
You have set up a symbiont pointing to port 9100.  Port 9100 is
variously known as RAW printing, JetDirect, or AppSocket.  That port
is designed to simply receive a file and print it.  It does not do
any processing. Typically, it will only accept text files and files
in whatever format is configured as the native language of the
printer.  In all of the printers I have seen, that is either some
form of Postscript or PCL.  It would appear that the native language
of your printer is Postscript which is why you can print text files
and postscript files but nothing else.
If you were to set up an LPD queue, it is possible that you could
successfully print a PDF file in that manner.
Unless you are running Multinet, it is unlikely that you have a
symbiont supporting IPP so pointing your symbiont at port 631 will
not help since port 631 is for the Internet Printing Protocol (IPP).
If you use the LPD symbiont, it will need to use port 515.
The other devices that can successfully print PDF files on this
printer are almost certainly using IPP (or AirPrint, a superset of
IPP).  It is unlikely that they are transforming the file behind the
scenes.
To all,
I have sent Philip a utility he can use to query the capabilities of
his printer and also use to print any type file his printer supports
(updated, since I left a spurious check in the first version I sent
him).  This utility should work as far back as V7.3-2.
https://theberrymans.com/php_kits/ipp.zip
If you do happen to try it, feedback is encouraged.
Mark Berryman
I tried the ipp show command of your ipp tool (IA64 version) with my
brother MFC-L3730CDN printer and it gave a lot of useful inormation
pdf-versions-supported:        none
This seems to indicate that the printer does not natively support PDF
files. This is in accordance with my failed attempts these files.
Unfortunately I could not use the tool for printing anything. The ipp
printer-uri-supported:         ipp://192.168.1.70/ipp/print
Using this I tried
$ ipp print SYS$COMMON:[SYSMGR]TFF$SYSTARTUP.COM;1 -
/device_url=ipp://192.168.1.70/ipp/print
%DCL-W-NOKEYW, qualifier name is missing - append the name to the slash
Also tried using the DNS name - same result.
Following your hint I changed the port from 9100 to 515 in my DCPS
setup file, but there is no change in the behaviour. It works exactly
the same way as with port 9100 before.
Maybe confused by the double "//" in the command.
Have you tried with /device_url="ipp://192.168.1.70" ?
Thanks. That solved the problem.
Phillip Helbig (undress to reply)
2021-04-24 14:01:24 UTC
Permalink
Post by Norbert Schönartz
I tried the ipp show command of your ipp tool (IA64 version) with my
brother MFC-L3730CDN printer and it gave a lot of useful inormation
pdf-versions-supported: none
Same here.
Post by Norbert Schönartz
This seems to indicate that the printer does not natively support PDF
files. This is in accordance with my failed attempts these files.
Unfortunately I could not use the tool for printing anything. The ipp
printer-uri-supported: ipp://192.168.1.70/ipp/print
It seems strange that the spec sheet claims PDF support (mentioning
version 1.0 at one point and 1.4 at another). If that means that it
will print PDF if converted to something else it can understand before
it gets to the printer, then it trivially supports all formats, but it
seems misleading and not very useful to mention it at all. (I am happy
that it prints PostScript, though, which is more important for me: most
PDF I have on VMS comes from PostScript (usually written by me via a
Fortran program); I can use ghostscript to convert PDF to PostScript and
print the PostScript; I can also print PDF via my iPad (if from VMS,
then copy the file to somewhere my webserver can see it and access it
from the iPad via http).) So, if it can't print PDF, it's not a
show-stopper, but it would be nice to have.

As mentioned here, the queue is to port 9100 and uses TCPIP$TELNETSYM;
whether I can use LPD and/or another port and print PDF directly, I
don't know, but it would be interesting to find out.

Presumably 9100 doesn't use IPP, but then again I know too little about
this. It would be interesting if I could set up a print queue on VMS
which would print PDF directly from VMS.

Again, if sent a PDF file, it prints out a message saying that directly
printing PDF is not supported, so it obviously recognizes it as a PDF
file (and thankfully doesn't print out pages of junk); maybe all it
knows about PDF is the magic number.
Post by Norbert Schönartz
Using this I tried
$ ipp print SYS$COMMON:[SYSMGR]TFF$SYSTARTUP.COM;1 -
/device_url=ipp://192.168.1.70/ipp/print
%DCL-W-NOKEYW, qualifier name is missing - append the name to the slash
Try

$ ipp print SYS$COMMON:[SYSMGR]TFF$SYSTARTUP.COM;1 -
/device_url="ipp://192.168.1.70/ipp/print"
Norbert Schönartz
2021-04-24 14:20:53 UTC
Permalink
This post might be inappropriate. Click to display it.
Phillip Helbig (undress to reply)
2021-04-24 14:31:58 UTC
Permalink
Post by Norbert Schönartz
Post by Phillip Helbig (undress to reply)
Again, if sent a PDF file, it prints out a message saying that directly
printing PDF is not supported, so it obviously recognizes it as a PDF
file (and thankfully doesn't print out pages of junk); maybe all it
knows about PDF is the magic number.
Yes, using a DCPS queue produces junk if you try to print a PDF file.
No DCPS queue, just

$ mc DISK$SCRATCH:[HELBIG.IPP]IPP.EXE_ALPHA print/device_url="<ip_address>"
David Jones
2021-04-24 15:55:33 UTC
Permalink
Post by Norbert Schönartz
But DCPS gives you a lot of options for formatting, e.g. defining the
font size and adding line numbers for text files, as well as control
over duplex printing, printing several pages on one sheet etc.
My favorite is using parameters data_type=list,page_orientation=landscape,sides=2
to simulate old-fashioned green bar printer paper.
Chris Townley
2021-04-24 16:14:16 UTC
Permalink
Post by Mark Berryman
To all,
I have sent Philip a utility he can use to query the capabilities of his
printer and also use to print any type file his printer supports
(updated, since I left a spurious check in the first version I sent
him).  This utility should work as far back as V7.3-2.
https://theberrymans.com/php_kits/ipp.zip
If you do happen to try it, feedback is encouraged.
Mark Berryman
Interested in this, as my HP inkjet (wireless, but with a fixed IP
address through DHCP) is meant to airprint compatible. I have tried IPP
to initially SHOW my printer. However whatever I give as a parameter, I
just get either %SYSTEM-F-BADPARAM, bad parameter value, or just no
address associated with hostname.

If I try with /device_url= whatever I enter I get %SYSTEM-F-BADPARAM,
bad parameter value. Same if I try to print.

I haver tried numerous ports but all to no avail...


Is the source available?


Chris
Phillip Helbig (undress to reply)
2021-04-24 17:12:06 UTC
Permalink
Post by Chris Townley
Interested in this, as my HP inkjet (wireless, but with a fixed IP
address through DHCP)
Do you mean you set the DHCP to always give it the same address? (My
printer also has wireless support but I'm using a cable; it also does
DHCP but I gave it a fixed address (via the admin menu for the
printer).)
Post by Chris Townley
is meant to airprint compatible. I have tried IPP
to initially SHOW my printer. However whatever I give as a parameter, I
just get either %SYSTEM-F-BADPARAM, bad parameter value, or just no
address associated with hostname.
If I try with /device_url= whatever I enter I get %SYSTEM-F-BADPARAM,
bad parameter value. Same if I try to print.
Did you quote the argument?
Chris Townley
2021-04-24 17:29:02 UTC
Permalink
Post by Phillip Helbig (undress to reply)
Post by Chris Townley
Interested in this, as my HP inkjet (wireless, but with a fixed IP
address through DHCP)
Do you mean you set the DHCP to always give it the same address? (My
printer also has wireless support but I'm using a cable; it also does
DHCP but I gave it a fixed address (via the admin menu for the
printer).)
Yes, very easy - based on the MAC address
Post by Phillip Helbig (undress to reply)
Post by Chris Townley
is meant to airprint compatible. I have tried IPP
to initially SHOW my printer. However whatever I give as a parameter, I
just get either %SYSTEM-F-BADPARAM, bad parameter value, or just no
address associated with hostname.
If I try with /device_url= whatever I enter I get %SYSTEM-F-BADPARAM,
bad parameter value. Same if I try to print.
Did you quote the argument?
Yes, although I have tried many combinations!

Chris
Mark Berryman
2021-04-24 19:25:13 UTC
Permalink
Post by Chris Townley
Post by Chris Townley
Interested in this, as my HP inkjet (wireless, but with a fixed IP
address through DHCP)
Do you mean you set the DHCP to always give it the same address?  (My
printer also has wireless support but I'm using a cable; it also does
DHCP but I gave it a fixed address (via the admin menu for the
printer).)
Yes, very easy - based on the MAC address
Post by Chris Townley
is meant to airprint compatible. I have tried IPP
to initially SHOW my printer. However whatever I give as a parameter, I
just get either %SYSTEM-F-BADPARAM, bad parameter value, or just no
address associated with hostname.
If I try with  /device_url= whatever I enter I get %SYSTEM-F-BADPARAM,
bad parameter value. Same if I try to print.
Did you quote the argument?
Yes, although I have tried many combinations!
Chris
Could you provide the command line used for the SHOW command, your VMS
version, and your IP stack version, please? Either here or via email.

Your system seems to be objecting to something in the TCP routines.

Mark Berryman
Chris Townley
2021-04-24 20:52:21 UTC
Permalink
Post by Mark Berryman
Post by Chris Townley
Post by Chris Townley
Interested in this, as my HP inkjet (wireless, but with a fixed IP
address through DHCP)
Do you mean you set the DHCP to always give it the same address?  (My
printer also has wireless support but I'm using a cable; it also does
DHCP but I gave it a fixed address (via the admin menu for the
printer).)
Yes, very easy - based on the MAC address
Post by Chris Townley
is meant to airprint compatible. I have tried IPP
to initially SHOW my printer. However whatever I give as a parameter, I
just get either %SYSTEM-F-BADPARAM, bad parameter value, or just no
address associated with hostname.
If I try with  /device_url= whatever I enter I get %SYSTEM-F-BADPARAM,
bad parameter value. Same if I try to print.
Did you quote the argument?
Yes, although I have tried many combinations!
Chris
Could you provide the command line used for the SHOW command, your VMS
version, and your IP stack version, please?  Either here or via email.
Your system seems to be objecting to something in the TCP routines.
Mark Berryman
VSI VMS V8.4-2L1, using TCPware V6.0-0

Example commands, and responses - did say I tried a few!):

$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show "192.168.1.10"
%SYSTEM-F-BADPARAM, bad parameter value
$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show "192.168.1.10:9100"
15:58:40.50: no address associated with hostname
$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show 192.168.1.10:9100
15:58:52.11: no address associated with hostname
$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show 192.168.1.10:3911
15:59:09.22: no address associated with hostname
$
$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show
/device_url="ipp://192.168.1.10"
%DCL-W-IVQUAL, unrecognized qualifier - check validity, spelling, and
placement
$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show INKJET
/device_url="ipp://192.168.1.10"
%DCL-W-IVQUAL, unrecognized qualifier - check validity, spelling, and
placement
$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show INKJET
/device_url="ipp://192.168.1.10:9100"
%DCL-W-IVQUAL, unrecognized qualifier - check validity, spelling, and
placement
$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show INKJET
/device_url="ipp://192.168.1.10:515"
%DCL-W-IVQUAL, unrecognized qualifier - check validity, spelling, and
placement
$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show 192.168.1.10:631
16:02:05.72: no address associated with hostname
$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show 192.168.1.10:515
16:02:10.16: no address associated with hostname
$
$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show INKJET
/device_url="ipp://192.168.1.10/ipp/print"
%DCL-W-IVQUAL, unrecognized qualifier - check validity, spelling, and
placement
$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show
/device_url="ipp://192.168.1.10/ipp/print"
%DCL-W-IVQUAL, unrecognized qualifier - check validity, spelling, and
placement
$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha print [-.-]x.com
/device_url="ipp://192.168.1.10/ipp/print"
%SYSTEM-F-BADPARAM, bad parameter value
$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha print [.-.-]x.com
/device_url="ipp://192.168.1.10/ipp/print"
%SYSTEM-F-BADPARAM, bad parameter value


Chris
Mark Berryman
2021-04-25 02:13:37 UTC
Permalink
Post by Chris Townley
Post by Mark Berryman
Post by Chris Townley
Post by Chris Townley
Interested in this, as my HP inkjet (wireless, but with a fixed IP
address through DHCP)
Do you mean you set the DHCP to always give it the same address?  (My
printer also has wireless support but I'm using a cable; it also does
DHCP but I gave it a fixed address (via the admin menu for the
printer).)
Yes, very easy - based on the MAC address
Post by Chris Townley
is meant to airprint compatible. I have tried IPP
to initially SHOW my printer. However whatever I give as a
parameter, I
just get either %SYSTEM-F-BADPARAM, bad parameter value, or just no
address associated with hostname.
If I try with  /device_url= whatever I enter I get %SYSTEM-F-BADPARAM,
bad parameter value. Same if I try to print.
Did you quote the argument?
Yes, although I have tried many combinations!
Chris
Could you provide the command line used for the SHOW command, your VMS
version, and your IP stack version, please?  Either here or via email.
Your system seems to be objecting to something in the TCP routines.
Mark Berryman
VSI VMS V8.4-2L1, using TCPware V6.0-0
$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show "192.168.1.10"
%SYSTEM-F-BADPARAM, bad parameter value
$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show "192.168.1.10:9100"
15:58:40.50: no address associated with hostname
$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show 192.168.1.10:9100
15:58:52.11: no address associated with hostname
$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show 192.168.1.10:3911
15:59:09.22: no address associated with hostname
$
$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show
/device_url="ipp://192.168.1.10"
%DCL-W-IVQUAL, unrecognized qualifier - check validity, spelling, and
placement
$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show INKJET
/device_url="ipp://192.168.1.10"
%DCL-W-IVQUAL, unrecognized qualifier - check validity, spelling, and
placement
$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show INKJET
/device_url="ipp://192.168.1.10:9100"
%DCL-W-IVQUAL, unrecognized qualifier - check validity, spelling, and
placement
$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show INKJET
/device_url="ipp://192.168.1.10:515"
%DCL-W-IVQUAL, unrecognized qualifier - check validity, spelling, and
placement
$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show 192.168.1.10:631
16:02:05.72: no address associated with hostname
$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show 192.168.1.10:515
16:02:10.16: no address associated with hostname
$
$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show INKJET
/device_url="ipp://192.168.1.10/ipp/print"
%DCL-W-IVQUAL, unrecognized qualifier - check validity, spelling, and
placement
$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show
/device_url="ipp://192.168.1.10/ipp/print"
%DCL-W-IVQUAL, unrecognized qualifier - check validity, spelling, and
placement
$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha print [-.-]x.com
/device_url="ipp://192.168.1.10/ipp/print"
%SYSTEM-F-BADPARAM, bad parameter value
$ mcr dka100:[townleyc.free.ipp]ipp.exe_alpha print [.-.-]x.com
/device_url="ipp://192.168.1.10/ipp/print"
%SYSTEM-F-BADPARAM, bad parameter value
Just specify the printer address without quotes and without a port number.

mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show 192.168.1.10

Mark
Chris Townley
2021-04-25 11:10:13 UTC
Permalink
This post might be inappropriate. Click to display it.
Mark Berryman
2021-04-26 14:07:10 UTC
Permalink
Post by Chris Townley
Post by Mark Berryman
Just specify the printer address without quotes and without a port number.
mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show 192.168.1.10
Mark
$ ipp show 192.168.1.10
%SYSTEM-F-BADPARAM, bad parameter value
$ netcu ping  192.168.1.10
PING 192.168.1.10: 56 data bytes
64 bytes from 192.168.1.10: icmp_seq=0. time=27. ms
64 bytes from 192.168.1.10: icmp_seq=1. time=2. ms
I tried on an HP VMS V8.3 with TCP/IP services (Version V5.6) using the
same emulator, and got exactly the same result.
Just checked on the control page for the printer - Airprint is on, as is
IPP and IPPS
I stood up a system running VMS 8.4 and TCP/IP Services v5.7 and did
some testing. It turns out that TCP/IP services requires privilege to
create a socket with socket options whereas Multinet does not.

The socket options in question are the size of the send and receive
buffers and one of OPER, SYSPRV, or BYPASS is required when using TCP/IP
Services.

I have put up a new kit that will try both with and without the socket
options. Hopefully, this will address the issue that some folks were
having.

Mark Berryman
Chris Townley
2021-04-26 14:39:35 UTC
Permalink
Post by Mark Berryman
Post by Chris Townley
Post by Mark Berryman
Just specify the printer address without quotes and without a port number.
mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show 192.168.1.10
Mark
$ ipp show 192.168.1.10
%SYSTEM-F-BADPARAM, bad parameter value
$ netcu ping  192.168.1.10
PING 192.168.1.10: 56 data bytes
64 bytes from 192.168.1.10: icmp_seq=0. time=27. ms
64 bytes from 192.168.1.10: icmp_seq=1. time=2. ms
I tried on an HP VMS V8.3 with TCP/IP services (Version V5.6) using
the same emulator, and got exactly the same result.
Just checked on the control page for the printer - Airprint is on, as
is IPP and IPPS
I stood up a system running VMS 8.4 and TCP/IP Services v5.7 and did
some testing.  It turns out that TCP/IP services requires privilege to
create a socket with socket options whereas Multinet does not.
The socket options in question are the size of the send and receive
buffers and one of OPER, SYSPRV, or BYPASS is required when using TCP/IP
Services.
I have put up a new kit that will try both with and without the socket
options.  Hopefully, this will address the issue that some folks were
having.
Mark Berryman
I was running with OPER & SYSPRIV

Will try the new version - thanks

Chris
Chris Townley
2021-04-26 15:01:56 UTC
Permalink
Post by Chris Townley
Post by Mark Berryman
Post by Chris Townley
Post by Mark Berryman
Just specify the printer address without quotes and without a port number.
mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show 192.168.1.10
Mark
$ ipp show 192.168.1.10
%SYSTEM-F-BADPARAM, bad parameter value
$ netcu ping  192.168.1.10
PING 192.168.1.10: 56 data bytes
64 bytes from 192.168.1.10: icmp_seq=0. time=27. ms
64 bytes from 192.168.1.10: icmp_seq=1. time=2. ms
I tried on an HP VMS V8.3 with TCP/IP services (Version V5.6) using
the same emulator, and got exactly the same result.
Just checked on the control page for the printer - Airprint is on, as
is IPP and IPPS
I stood up a system running VMS 8.4 and TCP/IP Services v5.7 and did
some testing.  It turns out that TCP/IP services requires privilege to
create a socket with socket options whereas Multinet does not.
The socket options in question are the size of the send and receive
buffers and one of OPER, SYSPRV, or BYPASS is required when using
TCP/IP Services.
I have put up a new kit that will try both with and without the socket
options.  Hopefully, this will address the issue that some folks were
having.
Mark Berryman
I was running with OPER & SYSPRIV
Will try the new version - thanks
Chris
Same result:

$ ipp show 192.168.1.10
%SYSTEM-F-BADPARAM, bad parameter value

Again running with OPER & SYSPRIV

Chris
Mark Berryman
2021-04-26 16:33:12 UTC
Permalink
Post by Chris Townley
Post by Chris Townley
Post by Mark Berryman
Post by Chris Townley
Post by Mark Berryman
Just specify the printer address without quotes and without a port number.
mcr dka100:[townleyc.free.ipp]ipp.exe_alpha show 192.168.1.10
Mark
$ ipp show 192.168.1.10
%SYSTEM-F-BADPARAM, bad parameter value
$ netcu ping  192.168.1.10
PING 192.168.1.10: 56 data bytes
64 bytes from 192.168.1.10: icmp_seq=0. time=27. ms
64 bytes from 192.168.1.10: icmp_seq=1. time=2. ms
I tried on an HP VMS V8.3 with TCP/IP services (Version V5.6) using
the same emulator, and got exactly the same result.
Just checked on the control page for the printer - Airprint is on,
as is IPP and IPPS
I stood up a system running VMS 8.4 and TCP/IP Services v5.7 and did
some testing.  It turns out that TCP/IP services requires privilege
to create a socket with socket options whereas Multinet does not.
The socket options in question are the size of the send and receive
buffers and one of OPER, SYSPRV, or BYPASS is required when using
TCP/IP Services.
I have put up a new kit that will try both with and without the
socket options.  Hopefully, this will address the issue that some
folks were having.
Mark Berryman
I was running with OPER & SYSPRIV
Will try the new version - thanks
Chris
$ ipp show 192.168.1.10
%SYSTEM-F-BADPARAM, bad parameter value
Again running with OPER & SYSPRIV
Chris
Chris,

Please contact me via email. I'd like to figure out why you are getting
that error.

Mark

Loading...