タイトル : Re^3: データから画像を取得、画像結合させて印刷したい 投稿日 : 2012/12/05(Wed) 21:09 投稿者 : 魔界の仮面弁士
> >DrawImage で画像を描画していく > > >g.DrawImage(bmap, 0, 0) > この場合、bmapに画像を描画していくわけですね。 逆ではないでしょうか。bmapに描画するのではなく、bmapを描画するのですから。 キャンバス「g」に対して、bmap を描画しているのであって、 bmap をキャンバスとして、そこに画像を描画しているわけではありません。 > 印刷をする場合、上記の後、 縦10cm×横22cmの画像 4 枚から、縦40cm×横22cmの画像 1 枚を生成して、 それをレターサイズ(21.59cm×27.94cm)に縮小表示したい、ということですよね。 結合画像は、PrintDocument1.Print() の前に作ってもおいても良いですし、 PrintDocument1_PrintPage の最中に生成しておいても構いません。 > 上記のように、PrintDocument クラスの PrintPage イベントで印刷〜 > を、繰り返すという感じでしょうか? ここでいう繰り返しとは、どのようなコードをイメージされておられますか? 元質問の『oracleDBからデータを取得、取得したデータをFor文でループさせ』の ループというのが、どのような物を想定しているのか読み取れませんでした。 たとえば「画像4枚を生成→1枚に結合→プリンタ出力」を一回行うか、 あるいは「画像4枚を生成→プリンタに並べて出力」を一回行うかだけで良いなら、 特に繰り返し処理は不要かと思います。 また、仮に Oracle から一つ目のデータを取得 → 画像4枚を生成〜印刷 → Oracle から二つ目のデータを取得 → 画像4枚を生成〜印刷 → Oracle から三つ目のデータを取得 → 画像4枚を生成〜印刷 という流れなのだとしても、それ自体がループ処理にはならないかと思います。 この場合でも、PrintDocument1.Print() の呼び出しは一回だけでよさそうですし。 (3ページなら、PrintPage イベントも 3 回呼び出されるとはいえ、 だからといって、PrintPage の内外でループ処理が必要になるわけでは無いので) |