iOS(iPad)で簡単印刷デザインと印刷[JAPAN]

Posted by on in Programming

毛利です。

 

iOS(iPad)にはAirPrint機能があり、Delphi / C++BuilderからもこのAirPrintを使い印刷する事ができます。

(AirPrint対応のプリンタが必要です)

Delphi / C++BuilderからはTActionListTShowShareSheetActionを使います。

 


 

[印刷画面デザイン]

印刷画面は通常のフォームで作成できます。

デザインを上絵のように作りました。使ったコンポーネントはTRectangle, TLine, TLabel, TButton, TLayoutです。

 

印刷で必要なコンポーネントは全てTLayout上に配置します。

 


[TActionListTShowShareSheetActionを作ります]

印刷用のアクションを作成します。

設定を開くと下のダイアログが出ます

その中の標準アクションの新規作成を選択

メディアライブラリの中のTShowShareSheetActionを選択します。

ShowShareSheetAction1が構造に出てきます。

ShowShareSheetAction1.OnBeforeExecuteを追加します。

このイベントにコードを追加します

//---------------------------------------------------------------------------
void __fastcall TForm1::ShowShareSheetAction1BeforeExecute(TObject *Sender)
{
	ShowShareSheetAction1->Bitmap->Assign(Layout1->MakeScreenshot());
}
//---------------------------------------------------------------------------

TLayoutMakeScreenshot()を作れます。なのでそのままShowShareSheetAction1に渡してしまいます。

 


[実行]

「見積書 印刷」ボタンを押すとポップアップが出てきます。

AirDrop,や他のアプリ, その中でプリントや画像を保存などもあります。

プリントを選ぶと AirPrintに対応したプリンタで印刷が可能です

Layout1上に配置されたコンポーネントのみが印刷範囲である事が確認できるかと思います。

Layout1->MakeScreenshot()で作成されたBitmapは画像としても保存可能です。

 



About
Gold User, No rank,
Delphi / C++Builder blogger

Comments

Check out more tips and tricks in this development video: