Access the answers to your technology questions today.
Subscribe Now
30-day free trial. Register in 60 seconds.
What Makes Experts Exchange Unique?
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.
Try it out and discover for yourself.
Subscribe Now
30-day free trial. Register in 60 seconds.
Join the Community
Give a Little. Get a Lot.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
Join the Community
by: billiousPosted on 2003-07-14 at 20:25:06ID: 8922314
Good choice of printer. Nice & reliable.
:= s[pt_s]; );
a); );
Generally, I've found that if you drive ELP2 printers (I haven't actually used the 2844 - I use the 2742, etc.) as a pure generic/text-only printer, and forget any drivers supplied then they work wonderfully.
I ended up using something like (This was for a Zebra220xiii, but same principle...)
type
TPassThroughData = Record
nLen : Integer;
Data : Array[0..655350] of char;
end;
var
PTBlock : TPassThroughData;
Procedure DirectPrint(s : String);
var
pt_s : integer;
Begin
if length(s) > 0 then
for pt_s := 1 to length(s) do
begin
ptblock.data[ptblock.nlen]
inc(PTBlock.nLen);
if PTBlock.nLen > 64000 then
begin
inc(PTBlock.nLen,2); {add in length of structure overhead}
Escape(printer.handle, PASSTHROUGH,0,@PTBlock,nil
PTBlock.nLen := 0;
end;
end;
End;
... main procedure...
ptblock.nLen := 0;
Printer.BeginDoc;
...
directprint(strings_of_dat
...
if PTBlock.nLen > 0 then
begin
inc(PTBlock.nLen,2); {add in length of structure overhead}
Escape(printer.handle, PASSTHROUGH,0,@PTBlock,nil
end;
Printer.EndDoc;
naturally, using
shellapi,
printers,
winspool
in the interface.
(It was a while ago, and might be a mite clumsy, but it worked!)
HTH
...Bill