タイトル : Re^4: データから画像を取得、画像結合させて印刷したい 投稿日 : 2012/12/06(Thu) 20:21 投稿者 : GFC
返信して下さりありがとうございます。 > > >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 の内外でループ処理が必要になるわけでは無いので) 元々、リライタブルプリンタという特殊なプリンタで、横長(220mm×100mm)の専用カードに、 oracleからデータを取得抽出し、抽出したデータをFor〜Next文で回しつつ 専用カードに(データ一件につき)一枚ずつ印刷していくプログラムを、 国外で同じ業務を使用する際(対象国では)国産リライタブルプリンタが法律で使用出来ない為、 普通のプリンタを利用し、 「画像4枚(データ4件)を生成→1枚に結合→レターサイズでプリンタ出力→次の4件〜」の形式で印刷するプログラムに改造しようとしていました。 |