PDA

View Full Version : چاپ مستقیم روی پرینتر



شنبه 19 اردیبهشت 1383, 21:56 عصر
سلام.
چطور میشه مستقیما روی پرینتر پرینت گرفت؟‌ بدون استاده از Reportها؟
دقیقا مثل داس (اول فونت فارسی رو ست کنم بعد پرینت کنم)؟

ممنون.

asdfghjkl
دوشنبه 19 اردیبهشت 1384, 00:00 صبح
این سوال رو منم دارم اگه کسی میدونه جواب بده
چطوری میتونم روی پرینترهای سوزنی فونت لود کنم

شفیعی
دوشنبه 19 اردیبهشت 1384, 05:07 صبح
سلام
فکر کنم با دستورات زیر بتوان این کار را انجام داد


PRINTER.BEGINDOC;



PRINTER.ENDDOC;

hr110
دوشنبه 19 اردیبهشت 1384, 06:43 صبح
اقای شفیعی شما کاملاً درست متوجه شدید، البته این بخشی از کاری است که شما باید انجام بدهید.
دستور begindoc به شما امکان میدهد که به Canvas که یکی از پراپرتیهای متغییر سراسری Printer میباشد دسترسی داشته و با استفاده از دستورات TextOut ، DrawText و یا CopyRect و ... متون و تصاویر خود را به چاپگر انتقال داده و بعد از اتمام با دستور Enddoc به چاپگر بفهمانید که انتهای متن فرارسیده و آنرا به کاغذ انتقال دهد.

در این زمینه قبلا هم جوابهایی داده شده است. :flower:

vesal
سه شنبه 20 اردیبهشت 1384, 15:17 عصر
سلام
برای این کار ابتدا باید یونیت Printers را در قسمت Uses اضافه کنید.
بعد از آن می توانید با استفاده از
اینم یه برنامه کوچولو که فکر کنم تا حدی کار با کلاس Printers رو نشون میده


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,printers, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
printr:TPrinter;
begin
Printer.BeginDoc;
Printer.Canvas.Font.Name:='tahoma';
Printer.Canvas.Font.Size:=48;
Printer.Canvas.TextOut(60,60,'Hello World');
Printer.EndDoc;
end;

end.

Touska
سه شنبه 20 اردیبهشت 1384, 18:25 عصر
آقای Vesal لطفا کد خود را با کد Code جدا کنید برای مثال :


Procedure Test;
Begin
End;

موفق باشید :flower: