喫茶XRAYトップページ

[スレッド全体
]

[12204] Re8:印刷プレビュー制御コンポーネントで左90度回転印刷返信 削除
2018/8/28 (火) 12:50:28 Mr.XRAY
> 私だと GDI+ を使ってしまうかも知れません.

「Delphi 画像 90度回転」
でググってみると GDI+ を使うまでもなさそうです.
やはり問題は印刷開始前の用紙の向きの設定かな ?
常に 90 度回転が必要というわけではないので,
TplPrev コンポに実装するか,Sara さんが独自で実装するかですね.
う〜ん.


[12206] Re9:印刷プレビュー制御コンポーネントで左90度回転印刷返信 削除
2018/8/29 (水) 09:55:49 Sara
▼ Mr.XRAYさん
> > 私だと GDI+ を使ってしまうかも知れません.
>
> 「Delphi 画像 90度回転」
> でググってみると GDI+ を使うまでもなさそうです.
> やはり問題は印刷開始前の用紙の向きの設定かな ?
> 常に 90 度回転が必要というわけではないので,
> TplPrev コンポに実装するか,Sara さんが独自で実装するかですね.
> う〜ん.


とりあえず、今回はこーんな感じにしてみました。

Bmpの回転処理をしなければ、通常印刷もこれを使えそうですが、
今回は、回転処理専用として書いています。

Bmp := TBitmap.Create;
try


  w := plPrev1.ViewWidth; h := plPrev1.ViewHeight;
  r := Rect(0,0,w,h);
  Bmp.SetSize(h,w);//用紙向きが縦になっているので、横向きのサイズにする
  for page1 := 0 to PageList.Count - 1 do begin //複数ページ分のループ
    line1 := LineMax;
    for ln := 0 to LineList.Count - 1 do begin //複数行印刷ループ
      1行分のデータ取り出し;
      if line1 = LineMax then begin //改ページ処理
        if ln <> 1 then begin //初回でなければ、ページ印刷処理
           RotateBitmap(Bmp);
           plPrev1.Canvas.StretchDraw(r.Bmp);
           Bmp.SetSize(h,w);
           plPrev1.NewPage;
        end;
        line1 := 0;
        ヘッダー印刷処理;//Bmpの初期かも実施
      end;
      Bmpに対する項目印刷処理[ln];
      inc(line1);
    end;
    RotateBitmap(Bmp);//回転処理
    plPrev1.Canvas.StretchDraw(r,Bmp);// 最後のページ印刷
  end;
finally
 Bmp.Free;
end;


[12207] Re10:印刷プレビュー制御コンポーネントで左90度回転印刷返信 削除
2018/8/29 (水) 19:21:12 Mr.XRAY
▼ Saraさんどうもです.

> とりあえず、今回はこーんな感じにしてみました。

すみませんね.今回はそれで,ということで m(_ _)m


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82