Delphi 2007 printer setup problem

Hi All,

i am using delphi 2007 and try to print barcodes and A4 pages on tlp2844 zebra and hp 1020.
My problem is, when i switch the printerindex to the 1020 from the 2844, then the printed a4 page is OK, but when i switch back to the 2844, the barcode is faulty, because the page size remains the A4.

I have tried some workarounds, but can't resolve it.

need help
thank you
RT_Asked:
Who is Participating?
 
Sinisa VukConnect With a Mentor Commented:
Try set printer index using this function:
http://delphi.cjcsoft.net/viewthread.php?tid=49172
...printing parameters are not set ....
0
 
Sinisa VukCommented:
how you print barcode? using quickreport?
0
 
RT_Author Commented:
nope
here is the code


Printer.BeginDoc;
Printer.Canvas.TextOut(0,128,leftstr(VarToStr(DBGrid3.DataSource.DataSet.FieldByName('NAME').Value),25));
Printer.Canvas.TextOut(0,155,'www.microstore.hu/'+DBtext4.Caption);

Barcode1D_Code1281.Barcode := VarToStr(DBGrid3.DataSource.DataSet.FieldByName('VONALKOD_SN').Value);
Barcode1D_Code1281.Print(2,-3,1,30,17,0);
Printer.EndDoc;
0
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
Sinisa VukCommented:
This component (Barcode1D_Code1281 - any link to this?) seems to be not getting information of printer change. Try to do this:

Printer.BeginDoc;
Printer.Canvas.TextOut(0,128,leftstr(VarToStr(DBGrid3.DataSource.DataSet.FieldByName('NAME').Value),25));
Printer.Canvas.TextOut(0,155,'www.microstore.hu/'+DBtext4.Caption);

Barcode1D_Code1281 := <create component here>
try
  Barcode1D_Code1281.Barcode :=   VarToStr(DBGrid3.DataSource.DataSet.FieldByName('VONALKOD_SN').Value);
  Barcode1D_Code1281.Print(2,-3,1,30,17,0);
finally
  <destroy component Barcode1D_Code1281 here>
end;

Printer.EndDoc; 

Open in new window

0
 
RT_Author Commented:
not working, i think the problem is with the printer component, i have writed out the page parameters to the screen and see that the dimensions not changing.

showmessage(vartostr(printer.PageHeight));
showmessage(vartostr(printer.Pagewidth));

when i'll start the program with default set to tpl2844, they are working, but when i set the default printer to the 2020 or another A4 printer, the settings going to a4 size, but when i am setting the printerindex back to tlp2844, the width and height are not changing back.

starting :
200,320
changing the def printer to the a4:
2374,831
after set the printer. printerindex back to tlp2844
Printer.PrinterIndex := g_barcode_prn_idx;
remains to 2374,831

so that is the problem
0
 
RT_Author Commented:
now i am trying to modify the printers.pas, maked a local copy to the project dir, but doesn't work , giving some erros :

http://www.rekettyei.hu/files/printerpas/printer.png
0
 
Sinisa VukConnect With a Mentor Commented:
If you want to modified Printers.pas, please copy .pas into project folder first - then do modify. This issue is described here (so you can use this tips):
http://qc.embarcadero.com/wc/qcmain.aspx?d=33676
0
 
RT_Author Commented:
Thank you, those 2 was ok
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.