続いて,
seizoさんのバーコード表示コンポーネント TBarImageを使用したサンプルです.
動作確認は,今のところ,
Windows XP(SP3) + Delphi 2010, XEのみ
//=============================================================================
// seizoさんのバーコード表示コンポーネント TBarImage
// http://www.vector.co.jp/soft/win95/writing/se196641.html
// を使用した,バーコード印刷のサンプルコード
// 印刷プレビュー制御コンポでは,描画の単位が0.1mmとなっている.したがって,
// バーコードのナロー幅(最低でも0.19mm),ワイド幅(ナロー幅の2.25〜2.5倍)になる
// ことを確認する必要あり
// この調整は,このサンプルでは以下で調整可能
// BarImage1.Scale
// plPrev1.StretchDrawMetaFile
//
// また,CODE39では左右にナロースペース(細い空白)の10倍以上のスペースが必要と
// されているので,これも確認する必要あり
// usesにBarImageが必要
//=============================================================================
procedure TForm1.Button1Click(Sender: TObject);
var
BarImage1 : TBarImage;
ARect : TRect;
begin
plPrev1.BeginDoc;
BarImage1 := TBarImage.Create(Self);
try
BarImage1.BarEnabled := False; //表示を一時的に禁止
BarImage1.BarType := cbarCODE39; //CODE39を選択
BarImage1.Scale := 3; //倍率指定
BarImage1.SymbolDisp := False; //シンボル文字列は非表示
BarImage1.Match := True; //バーコードのサイズに合わせて表示
BarImage1.BarPicture := picEMF; //メタファイル(EMF)表示を選択
BarImage1.BarColor := clBlack; //バーコードの色を黒色に指定
BarImage1.BackColor := clWhite; //背景色指定
BarImage1.BarHeight := 105; //高さ指定
BarImage1.BarLeft := 0; //表示位置指定(X座標)
BarImage1.BarTop := 0; //表示位置指定(Y座標)
BarImage1.BarSpaceUp := 10; //上方向の余白のサイズを指定
BarImage1.BarSpaceDown := 0; //下方向の余白のサイズを指定
BarImage1.BarSpaceLeft := 10; //左方向の余白のサイズを指定
BarImage1.BarSpaceRight := 10; //右方向の余白のサイズを指定
BarImage1.Code := '0123456789ABC'; //Codeプロパティ
BarImage1.BarEnabled := True; //この時点でバーコードを描画
ARect.Left := 200;
ARect.Top := 300;
ARect.Right := ARect.Left + BarImage1.BarWidth;
ARect.Bottom := ARect.Top + BarImage1.BarHeight;
//plPrev1.Canvas.Draw(ARect.Left, ARect.Top, BarImage1.Picture.Metafile);
//でも描画可能であるが,StretchDrawMetaFileならサイズ調整が可能なので
plPrev1.StretchDrawMetaFile(ARect, BarImage1.Picture.Metafile);
plPrev1.FontSize(10.5);
plPrev1.FontName('MS Pゴシック');
plPrev1.TextRectCT(ARect.Left,
ARect.Right,
ARect.Bottom,
ARect.Bottom + plPrev1.Canvas.TextHeight(BarImage1.Code),
BarImage1.Code);
finally
FreeAndNil(BarImage1);
plPrev1.EndDoc;
end;
plPrev1.ShowModal;
end;
|