ورود

View Full Version : خواندن خط جاری پرینتر



Bita.Jo
یک شنبه 20 تیر 1389, 11:26 صبح
با سلام
من می خواهم یک سری اطلاعات روی پرینتر بفرستم وباید شماره خطی که اطلاعات را شروع به نوشتن می کند را بدانم و همچنین پس از اتمام کار مجددا به آن شماره پرش کنم برای درج اطلاعات در قسمتهای باقیمانده خط. اگر کسی تابعی میدونه بهم بگه ممنون می شم.:افسرده:
تمام Help دلفی رو خوندم ولی از Getlinenumber, Property LineNum نتونستم استفاده کنم اشکال میگیره.

vcldeveloper
یک شنبه 20 تیر 1389, 13:21 عصر
Printer چیزی به نام شماره خط نداره، بلکه مختصات داره، که با استفاده از خصوصیت Canvas آن، می تونید ازش استفاده کنید. اگر میخواید محل قرارگیری متنی را محاسبه کنید، باید ارتفاع متن را با توجه به فونت انتخاب شده برای آن محاسبه کنید. متدهای TextWidth و TextHeight موجود در Canvas، این محاسبه را براتون انجام میدند.

مصطفی ساتکی
یک شنبه 20 تیر 1389, 14:47 عصر
شما براي چاپ خط به خط بايستي از AssignPrn استفاده كنيد شما يك متغير از نوع TextFile تعريف مي كنيد و اون رو بوسيله AssignPrn به printer جاري نسبت مي دهيد.اين متغير textfile حكم فايلو داره و به راحتي مي تونيد writeln كنيد و خط به خط فايلتنو چاپ كنيد .همنطوري كه آقاي كشاورز فرمودند براي Canvas تون فونت دلخواه رو در نظر بگيريد.

uses Printers;
procedure TForm1.Button1Click(Sender: TObject);
var i : Integer;
PrnText : TextFile;
begin
if PrintDialog1.Execute then
begin
AssignPrn(PrnText);
Rewrite(PrnText);
try
Printer.Canvas.Font.Assign(Font);
for i := 0 to Memo1.Lines.Count - 1 do
begin
Writeln(PrnText,Memo1.Lines[i]);
end;
finally
CloseFile(PrnText);
end;

end;

end;