Mr.XRAY氏が公開している印刷プレビュー制御コンポーネントをC++Builder 2007で使う方法。
使い方は簡単で、必要なファイルをプロジェクトに追加して、includeするだけです。
必要なコンポーネントをダウンロードします。
印刷プレビュー制御コンポーネント
Ver 4.80で動作を確認しました。
プリンタ設定コンポーネント
Ver 7.01で動作を確認しました。
コンポーネントをダウンロードしたら、以下のファイルをプロジェクトに追加します。
プロジェクトオプションの自動生成フォームを編集し、plPrevFormを自動生成フォームから外します。
プロジェクトを再構築すると、pasからhppファイルが作成されます。
plPrev.hppで次のエラーメッセージが表示される場合は、
[BCC32 エラー] plPrev.hpp(31): E2209 インクルードファイル 'Plsetprinter.hpp' をオープンできない
[BCC32 エラー] plPrev.hpp(37): E2209 インクルードファイル 'Textutils.hpp' をオープンできない
plPrev.hppを編集します。
#include <Plsetprinter.hpp> // Pascal unit
#include <Textutils.hpp> // Pascal unit
の行を
#include "Plsetprinter.hpp" // Pascal unit
#include "Textutils.hpp" // Pascal unit
にします。
# もっと良い方法があったら教えて下さい。
印刷プレビュー制御コンポーネントを使用するソースコードで、includeします。
#include "plSetPrinter.hpp"
#include "plPrev.hpp"
後は使用するだけです。
コードの書き方はDelphiと同じです。
void __fastcall TForm1::Button1Click(TObject *Sender)
TplSetPrinter* printer = new TplSetPrinter(this);
TplPrev* plPrev1 = new TplPrev(this);
plPrev1->plSetPrinter = printer;
plPrev1->plSetPrinter->Orientation = poPortrait;
plPrev1->Title = "モードレス表示";
plPrev1->BeginDoc();
try
{
plPrev1->Canvas->Pen->Width = 5;
plPrev1->Canvas->Rectangle(500,800,1500,2000);
plPrev1->Canvas->Font->Height = 100;
plPrev1->Canvas->TextOut(500,800,Text);
plPrev1->Canvas->Pen->Width = 1;
plPrev1->Canvas->MoveTo(500,900);
plPrev1->Canvas->LineTo(1500,900);
}
__finally
{
plPrev1->EndDoc();
}
plPrev1->Show();
}