PrinterSetupDialogの設定

 

 

 

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, PrintersDlgs, Forms, Controls,
  Graphics, Dialogs, Printers, ExtCtrls, StdCtrls, LCLType;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Memo1: TMemo;
    PrinterSetupDialog1: TPrinterSetupDialog;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}



{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
var
  s : string ;
begin
  PrinterSetupDialog1.Execute;
  // プリンタ名
  Memo1.Clear;
  s := 'プリンタ名:' + Printer.PrinterName ;
  Memo1.Lines.Add(s);
  // PaperSize
  s := 'Size:' + (Printer.PaperSize.PaperName);
  Memo1.Lines.Add(s);
  //横方向の総ドット数
  s := '横:' + IntToStr(Printer.PageWidth);
  Memo1.Lines.Add(s);
  //横方向の解像度
  s := 'XDPI:' + IntToStr(Printer.XDPI);
  Memo1.Lines.Add(s);
  //縦方向の総ドット数
  s := '縦:' + IntToStr(Printer.PageHeight);
  Memo1.Lines.Add(s);
  //縦方向の解像度
  s := 'XDPI:' + IntToStr(Printer.YDPI);
  Memo1.Lines.Add(s);
  //印刷の向き
  if Printer.Orientation = poPortrait then s := 'Portrait'
  else s := 'Landscape';
  s := '向き  :' + s;
  Memo1.Lines.Add(s);
   //給紙ビンの数
 if Printer.SupportedBins.Count > 0 then
   begin
    s := 'BinCount:' + IntToStr(Printer.SupportedBins.Count);
    Memo1.Lines.Add(s);
   end;
 //給紙ビンの名前
  s := '給紙  :' + Printer.BinName;
  Memo1.Lines.Add(s);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  s : string ;
begin
  Memo1.Clear;

  s := 'プリンタ数:' + IntToStr(Printer.Printers.Count);
  Memo1.Lines.Add(s);
  Printer.SetPrinter('Fax');
  Printer.PaperSize.PaperName := 'A5';

 

  s := 'プリンタ名:' + Printer.PrinterName ;
  Memo1.Lines.Add(s);
  s := 'Size:' + (Printer.PaperSize.PaperName);
  Memo1.Lines.Add(s);
  s := '横:' + IntToStr(Printer.PageWidth);
  Memo1.Lines.Add(s);
  s := 'XDPI:' + IntToStr(Printer.XDPI);
  Memo1.Lines.Add(s);
  s := '縦:' + IntToStr(Printer.PageHeight);
  Memo1.Lines.Add(s);
  s := 'XDPI:' + IntToStr(Printer.YDPI);
end;

end.