f



Problem printing binary image files.

We have files of images in Epson graphics format, which we are trying
to
print to an Epson DFX-5000 dot matrix (either on the DS10's parallel
port -
LRA0:, or via the LPD print symbiont). When the files are smaller than
32K
bytes, they print okay ... but when they are larger than 32K bytes it
appears
that some bytes go astray, and the printing of the image goes awry. The
files
are just a stream of bytes containing Epson print control and graphics
commands, there are no line feeds or separate records, just a stream of
say
40000 bytes. Extract of DIR/FULL showing relevant parts:
File organization:  Sequential
File attributes:    Allocation: 81, Extend: 0, Global buffer count: 0
                    Version limit: 0
Record format:      Undefined, maximum 0 bytes, longest 0 bytes
Record attributes:  None
RMS attributes:     None

VMS appears not to like data in chunks larger than 32K.
Does anybody have any idea how to deal with these files successfully on
VMS?
(Linux and Windows manage to print them without problems).

Thanks,
Erik Ahlefeldt.

0
erik_g (8)
8/11/2005 12:09:16 PM
comp.os.vms 21904 articles. 1 followers. Post Follow

6 Replies
662 Views

Similar Articles

[PageSpeed] 47

You could try...
just copying the file to the device eg. copy <file> LRA0:
or set up a telnet queue for the device with a "passall" setting
(you will have to read the ucx/tcpip manual to do this)
Phil

0
dooleys (229)
8/11/2005 3:01:14 PM
Erik wrote:
> print to an Epson DFX-5000 dot matrix (either on the DS10's parallel
> port -
> LRA0:, or via the LPD print symbiont).


> Record format:      Undefined, maximum 0 bytes, longest 0 bytes

> VMS appears not to like data in chunks larger than 32K.


Try

SET FILE mumble.dat /ATTR=(RFM:FIX,LRL=512,RAT=NONE)

This creates fixed length records of 512 bytes and no record separator.
While creating files with "undefined" is the philosophically correct way
to create binary content, not many VMS applications actually handle
undefined very well because they ask for a record and RMS then complains
about record being bigger than 32K or whatever buffer quota you may have.

You may wish to also provide what print symbiont you are using on ther queues.


Also, if you have a 50k file, do only the first 32k print ? Or does some
of the data beyond the 32k get sent to the printer ?
0
8/11/2005 6:04:19 PM
Thanks for the suggestions. I have had partial success.

>set up a telnet queue for the device with a "passall"
the telnet symboint is not an option because there is
not network connection to this printer (LPD is via another
computer). I have tried "passall" on the LRA0: queue
without success.

>copying the file to the device eg. copy <file> LRA0:
Dies with SYSTEM-F-EXQUOTA,. After increasing
process quotas (BIOLM is the critical one I think),
AND doing a "SET FILE/ATTR=(RFM:FIX,LRL:512)"
a COPY to LRA0, does in fact  print properly. I will
continue experimenting, with the larger files which
combine text and multiple images. We would really
like the print symbiont to be able to do this, because
this is a busy printer doing several different stationery
types,  and the standard print queuing mechanism
should be able to do this, and because we need to
print via LPD.

>SET FILE mumble.dat >/ATTR=(RFM:FIX,LRL=512,RAT=NONE)
 This causes the file not not print properly, presumably because of
extra line feeds or carriage returns introduced by the print symbiont
at the end of each 512 bytes. I'm using either the default print
symbiont (PRTSMB) or the LPD print symbiont.

>Also, if you have a 50k file, do only the first 32k print ? >does data beyond the 32k get sent to the printer ?
Data beyond 32K does get sent to the printer but the
image is completely mangled  past that point.

Thanks,
Erik.

0
erik_g (8)
8/12/2005 12:37:48 AM
Erik wrote:
> Thanks for the suggestions. I have had partial success.
>
> >set up a telnet queue for the device with a "passall"
> the telnet symboint is not an option because there is
> not network connection to this printer (LPD is via another
> computer).
You can specify a remote host for telnetsym
/ON="hostname:port"
You may also want to investigate using a "relay queue",
the symbiont keeps a copy of the output file on disk,
you could see if printing this to LRA0: works
Phil

0
dooleys (229)
8/12/2005 1:22:07 AM
Erik wrote:
> >SET FILE mumble.dat >/ATTR=(RFM:FIX,LRL=512,RAT=NONE)
>  This causes the file not not print properly, presumably because of
> extra line feeds or carriage returns introduced by the print symbiont

Have you tried PRINT/PASSALL ? 

Also, you can try SET FILE mumble.dat /ATTR=(RFM:STMLF,RAT=NONE)

Another one to try RFM=STM
0
8/12/2005 1:47:54 AM
Erik wrote:
> 
> Thanks for the suggestions. I have had partial success.
> [snip]
> 
> >SET FILE mumble.dat >/ATTR=(RFM:FIX,LRL=512,RAT=NONE)
>  This causes the file not not print properly, presumably because of
> extra line feeds or carriage returns introduced by the print symbiont
> at the end of each 512 bytes.

Actually, no - it doesn't, unless you've also mucked about with the
Record Attributes (RAT). Google this group for complaints about
"stair-stepped" printing. "None" is correct in this case. The symbiont
does not insert extraneous data, unless you are using an early version
of UCX (V4.3 or earlier) which has some major issues in this area.

> I'm using either the default print
> symbiont (PRTSMB) or the LPD print symbiont.

PRTSMB would work only with parallel or serial direct-attached printers.
Otherwise you're using LATSYM, some form of "LPDSYM" or a "stream"
symbiont.

You should be able to "lp stop" the target queue on the UN*X machine,
then "od" (octal dump, or equivalent - dunno what it would be called)
the file as received via LPD into the queue's spool directory and see
what's in it. If there's extraneous characters inserted at predictable
intervals, you've likely got LPD symbiont issues.

-- 
David J Dachtera
dba DJE Systems
http://www.djesys.com/

Unofficial OpenVMS Hobbyist Support Page:
http://www.djesys.com/vms/support/

Unofficial Affordable OpenVMS Home Page:
http://www.djesys.com/vms/soho/

Unofficial OpenVMS-IA32 Home Page:
http://www.djesys.com/vms/ia32/

Coming soon:
Unofficial OpenVMS Marketing Home Page
0
8/13/2005 3:09:29 AM
Reply: