名前 題名 ▼ snailさん > ▼ Mr.XRAYさん > すいません、ずいぶん遠回りしましたがやっと戻ってきました。 > > 本日サンプルをみながらプリンターで印字してみました。 > 印字で利用したプリンターは EPSON LP-S3250 > > 白抜き文字はっきりくっきり見えます。さすがです。 \(^_^)/ > > 問題は黒塗り部分、一見問題無いように見えますが > よーくみるとナメクジがはったような模様が、、、 (;_;) > > EXCELで印字しても同じなのでプリンタの問題だと思います。 > > ありがとうございました。 _(._.)_ > > 一応ソースを貼っておきます。 > > unit PrintTest; > // 白抜き文字印刷テスト > // http://mrxray.on.coocan.jp/Delphi/Others/FukuroMoji.htm > > interface > > uses > Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, > Dialogs, StdCtrls, Printers, Clipbrd, WinSpool; > > type > TForm1 = class(TForm) > Button1: TButton; > procedure Button1Click(Sender: TObject); > private > { Private 宣言 } > public > { Public 宣言 } > end; > > var > Form1: TForm1; > > implementation > > {$R *.dfm} > var > FPointArray : TByteArray; > FPointKindArray : TByteArray; > FPointCount : Integer; > > procedure TForm1.Button1Click(Sender: TObject); > var > LLogFont : TLogFont; > LText : string; > WStX : Integer; // 罫線印字開始X座標 > WStY : Integer; // 罫線印字開始Y座標 > WEndX : Integer; // 罫線印字終了X座標 > WEndY : Integer; // 罫線印字終了Y座標 > WRect : TRect; > begin > Printer.BeginDoc; // 印字のための準備 > try > WStX := 200; // WrkRect.Left; > WStY := 100; // WrkRect.Top; > WEndX := 4800; // WrkRect.Right; > WEndY := 400; // WrkRect.Bottom; > Printer.Canvas.Brush.Color := clBlack; // clAqua; > Printer.Canvas.Rectangle( WStX, WStY, WEndX, WEndY ); > > GetObject( Printer.Canvas.Font.Handle,SizeOf(LLogFont),@LLogFont); > LLogFont.lfWeight := 1000; > > Printer.Canvas.Font.Handle := CreateFontIndirect(LLogFont); > > Printer.Canvas.Font.Name := 'メイリオ'; > Printer.Canvas.Font.Size := 10; > Printer.Canvas.Font.Charset := DEFAULT_CHARSET; > Printer.Canvas.Brush.Style := bsClear; > > // バスの記録 > BeginPath(Printer.Canvas.Handle); > LText := '白抜き文字'; > Printer.Canvas.Textout(40, 120, LText); > EndPath(Printer.Canvas.Handle); > > // パスの座標値の格納に必要な数を取得して配列に格納 > FPointCount := GetPath(Printer.Canvas.Handle, FPointArray, FPointKindArray, 0); > GetPath(Printer.Canvas.Handle, FPointArray, FPointKindArray, FPointCount); > > // パス情報が取得できたので再描画 > //// Invalidate; ////////// > // 取得したパス情報で図形を描画 > BeginPath(Printer.Canvas.Handle); > PolyDraw(Printer.Canvas.Handle, FPointArray, FPointKindArray, FPointCount); > EndPath(Printer.Canvas.Handle); > > // 現在のブラシでバスの内部を塗りつぶし,現在のペンで輪郭線を描画する > Printer.Canvas.Brush.Style := bsSolid; > Printer.Canvas.Brush.Color := clWhite; > Printer.Canvas.Pen.Color := clBlack; > Printer.Canvas.Pen.Width := 5; > StrokeAndFillPath(Printer.Canvas.Handle); > > finally > Printer.EndDoc; > end; > > end; > > end. > > GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link