☆簡単な印刷サンプル

[Windowsフォームアプリケーション]
.NET Framework SDKを見ながら、簡単な印刷サンプルを作ってみました。
このサンプルは、テキストファイルを読み込んでPrintDialogで設定された内容で印刷し
ます。(実際には印刷せずにFuji Xerox Docuworksに印刷して確認しました。)
 1.Windowsフォームアプリケーションを新規作成します。
 2.Button1, PrintDocument1, PrintDialog1を配置します。
 3.usesに System.IO を追加します。
 4.フォームのPrivate宣言に
    StreamToPrint: StreamReader;
    PrintFont: System.Drawing.Font;
   と記述します。
 5.Button1のClickイベントとPrintDocument1のPrintPageイベントに
   下記のプログラムを設定します。

procedure TWinForm1.Button1_Click(sender: System.Object; 
 e: System.EventArgs);
begin
 PrintDialog1.Document := PrintDocument1;

 if PrintDialog1.ShowDialog <> 
   System.Windows.Forms.DialogResult.OK then Exit;

 PrintDocument1.PrinterSettings := PrintDialog1.PrinterSettings;

 StreamToPrint := StreamReader.Create('c:\PrintMe.txt');
         ↑↑テキストファイル名は適当に設定して。
 try
  PrintFont := System.Drawing.Font.Create('Arial', 10);
  PrintDocument1.Print;
 finally
  StreamToPrint.Close;
 end;
end;


procedure TWinForm1.PrintDocument1_PrintPage(sender: System.Object;
 e: System.Drawing.Printing.PrintPageEventArgs);
var
 lpp: Single;
 yPos: Single;
 Count: Integer;
 LeftMargin: Single;
 TopMargin: Single;
 Line: String;
begin
 Count := 0;
 LeftMargin := e.MarginBounds.Left;
 TopMargin := e.MarginBounds.Top;

 lpp := e.MarginBounds.Height / PrintFont.GetHeight(e.Graphics);
 Line := StreamToPrint.ReadLine;

 while (Count < lpp) do
 begin
  yPos := TopMargin + (Count * PrintFont.GetHeight(e.Graphics));
  e.Graphics.DrawString (Line, PrintFont, Brushes.Black, 
   LeftMargin, yPos, StringFormat.Create);
  Inc(Count);
  if (Count < lpp) then
   Line := StreamToPrint.ReadLine;
 end;

 //これではLineが偶然空白行だった場合、
 //次ページが印刷されないのだがサンプルということでお許しを(^^;
 e.HasMorePages := (Line <> ''); 
end;

|

その他のカテゴリー

ADO | ADT | API | ArrayList | ASP.NET | BDE | BDP.NET | BdpConnection | Borland Developer Studio 2006 | CAPICOM | class | ClipBoard | CodeEditor | Convert.ToString | Custom component | DBExpress | Delphi 2005 | Delphi 2006 | Delphi 2007 | Delphi XE2 | Delphi7 | Delphi8 | Device Driver | Dialog | Docking | DocuWorks | Docuworks SDK | Drag&Drop | Evernote | EXCEL | Firebird | FireMonkey | Game | General | Generics | Google Earth COM API | Google Maps | Google SketchUp | Graphic | IDE | Imm | Indy | InstallAware Express6 | InterBase Admin | JWW | Microsoft SQL Server | MyBase | OnMouseDown | Oracle XE | Paradox | PreviewHandler | PrintDialog | PrintPreviewDialog | PropertyGrid | PSDファイル | Ribbon Controls | RichTextBox | Servers | SubClass | TAction | TActionList | TAnimate | TButton | TCategoryButtons | TClientDataSet | TComboBox | TComboBoxEx | TCustomEdit | TDBGrid | TDockTabSet | TDrawGrid | TEdit | TExcelApplication | TFont | TForm | third party | TImage | TLabel | TList | TListBox | TListView | TMemo | TOpenDialog | TOutlookApplication | TPageControl | TPanel | TRichEdit | TShellResources | TStringGrid | TTabControl | TToolBar | TToolButton | TTreeView | TWebBrowser | Update | VCL Styles | WinInet | XE2 | XPman | オープン配列パラメータ | グループ化 | トランスレーションマネージャー | ファイル処理 | ファイル名処理 | 動的配列 | 投票 | 文字列処理 | 日本語入力 | 暗号 | | 音声合成利用