实现打印功能

来源:互联网 发布:网络直播的起源 编辑:程序博客网 时间:2024/04/30 15:07
unit UPrint;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, ComCtrls, StdCtrls,Printers;//Printerstype  TFPrint = class(TForm)    PrinterSetupDialog1: TPrinterSetupDialog;    PrintDialog1: TPrintDialog;    BPrint: TButton;    PageControl1: TPageControl;    TabSheet1: TTabSheet;    TabSheet2: TTabSheet;    BSet: TButton;    TabSheet3: TTabSheet;    TabSheet4: TTabSheet;    procedure BPrintClick(Sender: TObject);    procedure BSetClick(Sender: TObject);    procedure FormCreate(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  end;var  FPrint: TFPrint;implementation{$R *.dfm}procedure TFPrint.FormCreate(Sender: TObject);begin   TabSheet1.Caption :='页面一';   TabSheet2.Caption :='页面二';   TabSheet3.Caption :='页面三';   TabSheet4.Caption :='页面四';   BSet.Caption :='页面设置...';   BPrint.Caption :='打印...';end;procedure TFPrint.BSetClick(Sender: TObject);begin   PrinterSetupDialog1.Execute;end;procedure TFPrint.BPrintClick(Sender: TObject);var  FirstPage, LastPage: Integer;  i:integer;begin  //设置打印对话框的选项  PrintDialog1.Options := [poPageNums, poSelection];  PrintDialog1.FromPage := 1;  PrintDialog1.MinPage := 1;  PrintDialog1.ToPage := PageControl1.PageCount;  PrintDialog1.MaxPage := PageControl1.PageCount;  //显示打印对话框  if PrintDialog1.Execute then    begin    //确定用户所选择的打印范围    with PrintDialog1 do     begin      if PrintRange = prAllPages then        begin            FirstPage := MinPage - 1;            LastPage := MaxPage - 1;        end      else if PrintRange = prSelection then        begin            FirstPage := PageControl1.ActivePage.PageIndex;            LastPage := FirstPage;          end      else  // PrintRange = prPageNums 的情况        begin            FirstPage := FromPage - 1;            LastPage := ToPage - 1;        end;    end;    //开始打印    with Printer do    begin      BeginDoc;      for i := FirstPage to LastPage do      begin        PageControl1.Pages[I].PaintTo(Handle, 10, 10);        if i <> LastPage then          NewPage;      end;      EndDoc;    end;  end;end;end.
原创粉丝点击