喫茶XRAYトップページ

[スレッド全体
]

[1100] 印刷方向設定について返信 削除
2007/2/12 (月) 20:23:00 順三
 順三と申します。
有用なコンポーネントをご提供頂きありがとうございます。

 早速ですが、plSetPrinter と plPrev の組み合わせで、印刷プレビュー
し、ユーザにはプレビューフォームの印刷ボタンから印刷させるプログラム
を組んでいます。
概略以下のようにしております。
  plSetPrinter1.PrinterNumber := -1;
  plSetPrinter1.SetOrientation(poLandscape); //横

  plPrev1.BeginDoc;
   ・・・以下省略

ここで、プレビューは横で表示されるのですが、プリントするとプリンタ設定
で縦がデフォルトになっている場合(つまりデフォルトを横に変えない限り)
縦方向に印刷されてしまいます。いろいろ試した結果、どうも通常使用する
プリンタが、NetBiosで共有されているプリンタの場合に起きるようです。
(通常使用するプリンタがネットワークプリンタで、plPrevFormの印刷ボタン
からプリンタを変更し、NetBios共有プリンタに出力した場合は横方向で印刷
されます。)
何か、対応方法や、設定項目などにつき、アドバイスをお願い致します。
                       よろしくお願い致します。




[1110] Re:印刷方向設定について返信 削除
2007/2/16 (金) 10:29:45 Mr.XRAY
今読み返してみました.

> ここで、プレビューは横で表示されるのですが、プリントするとプリンタ設定
> で縦がデフォルトになっている場合(つまりデフォルトを横に変えない限り)
> 縦方向に印刷されてしまいます。いろいろ試した結果、どうも通常使用する
> プリンタが、NetBiosで共有されているプリンタの場合に起きるようです。
> (通常使用するプリンタがネットワークプリンタで、plPrevFormの印刷ボタン
> からプリンタを変更し、NetBios共有プリンタに出力した場合は横方向で印刷
> されます。)


これは考えられます.

>  plSetPrinter1.PrinterNumber := -1;
>  plSetPrinter1.SetOrientation(poLandscape); //横


まず最初の行でデフォルトのプリンタを指定しています.そのプリンタの印刷
方向を横にしています.印刷の際にプリンタを変更すると,前のプリンタに設
定した内容(プロパティ)が必ずしも反映されるとは限りません.
例えば用紙サイズなどを考えればいいでしょう.他のプリンタでは使用できない
用紙サイズもあります.

対象であるプリンタ名とドライバが不明ですので,こちらでは確認できません
が,おそらくそのためだと思われます.
印刷プレビュー制御コンポーネントは,ワードや他のレポート作成ツールとは
違い,内部で用紙サイズや印刷方向を保持しているわけではありません.あく
までも,指定したプリンタに対する設定で行います.
プリンタが存在しない環境では使用できないのもそのためです.

強制的に印刷方向を変更するのであれば,以下のの様にTplPrevのイベント
OnPrintButtonClickに

     Printer.Orientation:=poLandscape;
あるいは,
     plPrev1.plSetPrinter.Orientation:=poLandscape;
と記述して下さい.



[1113] Re2:印刷方向設定について返信 削除
2007/2/17 (土) 19:06:23 順三
▼ Mr.XRAYさん
> 今読み返してみました.
>
> 強制的に印刷方向を変更するのであれば,以下のの様にTplPrevのイベント
> OnPrintButtonClickに
>
>      Printer.Orientation:=poLandscape;
> あるいは,
>      plPrev1.plSetPrinter.Orientation:=poLandscape;
> と記述して下さい.
>


 ありがとうございます。印刷直前に設定しなければならない、と
 言うことですね。イベントに入れて試してみます。
 ちなみに試してみたプリンタは、EPSON LP-9000とCANON MP-770です。
 (富士通のA4ページプリンタも試しましたが機種名を忘れてしまいました)
 

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