2017年4月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

最近のトラックバック

無料ブログはココログ

« 時刻表ビューをPDFファイルへ出力すると、そのPDFでは時刻表の罫線が見えない | トップページ | OuDia 1.02.03 を公開しました »

2016年11月24日 (木)

時刻表ビューをPDFファイルへ出力すると、そのPDFでは時刻表の罫線が見えない-2

「PDF出力の場合だけ時刻表の罫線が見えなくなる」という問題の原因を思いつくまでには、時間がかかりました。
原因は、「アプリケーションソフトから長方形を描画したとき、出力先がPDFだと、他の出力先(ディスプレーやプリンター)に比べて、長方形のサイズが大きくなる」ということでした。(ここでの『出力先』は、Windows GDI を指します)。

時刻表ビューをはじめとした「グリッド形式ビュー」は、以下の順序で描画を行っています。

1.グリッドの罫線を描画する
2.各セルに、背景色で長方形を描画する
3.セル内のテキストを描画する

出力先がPDFの場合、2.の処理において描画する長方形が大きく、罫線に乗り上げてしまいます。このため、罫線が覆われて見えなくなってしまうのです。

oudia_1.01.02_pdf

この問題の解決策は、以下のように描画の順番を変えることしか思いつきませんでした。

1.各セルに、背景色で長方形を描画する
2.セル内のテキストを描画する
3.グリッドの罫線を描画する

しかし、これは、結合セルがある場合に、少々面倒な処理が必要になりました。今までは、罫線の後にセルの背景やテキストを描画していたため、結合セルの上を通る罫線は、結合セルの背景色に塗りつぶされて見えなくなっていました。しかし、罫線をセルの後に描画するとなると、結合セルの上に罫線が重なってしまいます。

このため、罫線を描画する処理に、結合セルを避けて線を引くような仕組みを追加しました。

こうして何とか、PDFへの時刻表ビューの出力を改善することができました。

oudia_1.01.03_pdf

« 時刻表ビューをPDFファイルへ出力すると、そのPDFでは時刻表の罫線が見えない | トップページ | OuDia 1.02.03 を公開しました »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/186995/64535562

この記事へのトラックバック一覧です: 時刻表ビューをPDFファイルへ出力すると、そのPDFでは時刻表の罫線が見えない-2:

« 時刻表ビューをPDFファイルへ出力すると、そのPDFでは時刻表の罫線が見えない | トップページ | OuDia 1.02.03 を公開しました »