ひとつ教えて頂きたいのですが、QuickRepでの印刷で
A4 横で印刷を行おうと色々調べた結果以下のコードになりました。
procedure Set_Print;
var
ADevice, ADriver, APort: array[0..255] of Char;
ADeviceMode: THandle;
ADevMode : ^TDevMode;
begin
Printer.GetPrinter(ADevice, ADriver, APort, ADeviceMode);
if ADeviceMode <> 0 then
begin
ADevMode := GlobalLock(ADeviceMode);
ADevMode^.dmPaperSize := DMPAPER_A4; //用紙をA4
ADevMode^.dmOrientation := DMORIENT_LANDSCAPE; //横にする
GlobalUnLock(ADeviceMode);
Printer.SetPrinter(ADevice, ADriver, APort, ADeviceMode);
end;
//確認用 st
QuickRep1.PrinterSettings.Orientation := poLandscape;
IF QuickRep1.PrinterSettings.Orientation = poPortrait then
ShowMessage('1')
else
ShowMessage('2');
QuickRep1.UserPrinterSettings.Orientation := poLandscape;
IF QuickRep1.UserPrinterSettings.Orientation = poPortrait then
ShowMessage('1')
else
ShowMessage('2');
//確認用end
QuickRep1.print;
end;
QuickRep1.PrinterSettings.OrientationもQuickRep1.UserPrinterSettings.Orientationともに2がかえってくるので
poPortraitには設定できていると思いますが、A4縦で印字されてしまいます。
まだ設定が足りていない箇所がありますでしょうか。
また過去ログにもあったのですが、レポートのプレビューでも縦表示になってしまいます(QuickRep1は横にしています)
環境:Windows7 Pro Delphi2009 QRP 5.04.1です
こんにちわ。
プリンター変えてみるとどうですか?横に出ませんか?
プリンターがない場合はBullZipなどを使ってPDFに出力するなど。
基本QuickRep1が横になっていれば印刷もプレビューも横になるのですが。。。
>>Atchoumさん
返信ありがとうございます、SP4310(リコー)→PDFプリンターに変更を行っても現象は改善されません。
過去に使用したときはQuickRep1が横になっていれば印刷もプレビューも横になったので、なぜこのようなことになっているのかわからずに戸惑っております・・・
そうですか、だめでしたか。
新しいプロジェクト作成して、
QuickRep1、その上にBand追加して、QRLabelを追加したシンプルなコーディングなしのアプリでも同じでしょうか?
過去にはできたとありますが、過去と今で何かコードや環境で相違点あるのでしょうか?
上のサンプルで試しましたが、こちらの環境Windows7,DelphiXE,QuickReport5.05でうまく横印刷できました。
なので上のコードは間違ってはいないと思います。
>>Atchoumさん
過去と現在とでは環境が違っておりまして
過去windwsXP Pro Delphi 5 QRP 2だったかと思います、QRPのバージョンはちょっとあやふやです
現状はこのような感じです・・・
http://cdn.uploda.cc/img/img502c816d7a602.png
どうしたものか・・・
画像拝見しました。
サムネイルは横なのに、右側のプレビューは縦ですね。
最新のQuickReport5.05のようです。
新しいバージョンにして試してみてはいかがでしょうか?
http://www.quickreport.co.uk/WebInfoPage.aspx?WebInfoID=616
>>Atchoumさん
順番にバージョンをあげてこうと思い、QRP 5.04.1→5.04.2に変更した所。
きちんと横表示になりました!
ありがとうございます。
ツイート | ![]() |