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.

