喫茶XRAYトップページ


[748] 印刷プレビュー制御コンポーネントに関して2つほど返信 削除
2006/4/24 (月) 14:26:16 cham
Mr.XRAYさん、こんにちは。

いつもコンポーネントを便利に活用させていただいております。

2つほど質問です。

1.複数ページある場合、後ろの数ページが印字されないことがあります。
  プレビューしてからの印刷では問題ありません。

2.罫線で点線を印字するとプレビューでは点線になっていますが、実際の
  印刷時に実線になっている。

1.は具体的には下記のように処理しています。

procedure HeadPrint;
begin

end;

[749] Re:印刷プレビュー制御コンポーネントに関して2つほど返信 削除
2006/4/24 (月) 14:36:36 cham
Mr.XRAYさん、こんにちは。

すいません、先ほど途中で送信されてしまいました。

1.は具体的には下記のように処理しています。

procedure HeadPrint;
begin
 if 初回なら then plPrev1.BeginDoc
  else             plPrev1.NewPage;
end;

procedure MeisaiPrint;
begin
  wihile (db.eof <> true) do
  begin
    if 改ページチェック then HeadPrint;
    明細プリント処理
    db.Next;
  end;
  if 1行でも印刷した then
  begin
    plPrev1.EndDoc;
    plPrev1.Print;
  end;
end;


2.は

plPrev1.PenWidth( 1 );
plPrev1.PenStyle( psDot );
plPrev1.Line( A4Left, A4Right, line, line );

※A4Left,A4Rightは固定値です。それぞれ 100と1800です。
  line は行数から算出した値がはいっています。

1.はとりあえずプレビューしてからであれば問題ないので現在は
そのようにしてあります。環境がいけないのか、コーディングがいけないのか
判断できず質問させていただきました。

2.はプリンタの問題なのでしょうか。やはりどこがいけないのか判断できず
質問させていただきました。

[750] Re2:印刷プレビュー制御コンポーネントに関して2つほど返信 削除
2006/4/24 (月) 18:39:01 Syake
解決策ではありません。
追い討ちをかけるがごとく・・・

> 2.は
>
> plPrev1.PenWidth( 1 );
> plPrev1.PenStyle( psDot );
> plPrev1.Line( A4Left, A4Right, line, line );
>
> ※A4Left,A4Rightは固定値です。それぞれ 100と1800です。
>   line は行数から算出した値がはいっています。
>
> 2.はプリンタの問題なのでしょうか。やはりどこがいけないのか判断できず
> 質問させていただきました。


プリンターではないような・・・・
RoundRect、Rectangleも同じですね。
線を描画するのだから結果同じことなのかなぁ?
今まで点線は使ったことがありませんでしたが同じくそうなってしまいます。
プリンターを3機種試みましたが結果は全て同じでした。

[751] Re3:印刷プレビュー制御コンポーネントに関して2つほど返信 削除
2006/4/24 (月) 21:46:30 cham
▼ Syakeさん

> プリンターではないような・・・・
> RoundRect、Rectangleも同じですね。
> 線を描画するのだから結果同じことなのかなぁ?
> 今まで点線は使ったことがありませんでしたが同じくそうなってしまいます。
> プリンターを3機種試みましたが結果は全て同じでした。


テストしていただきありがとうございます。
プリンターや環境の問題ではなさそうなので、すっきりしました。
とりあえずプログラム内でなんとか点線に見えるように誤魔化して
処理しようと思います。

[754] Re:印刷プレビュー制御コンポーネントに関して2つほど返信 削除
2006/4/24 (月) 23:37:32 Mr.XRAY
▼ chamさん、こんにちは。

それと、Syakeさん、レス、すみません。

1. これはバグのようです。
前にも、この掲示板かメールで問合わせがありました。
なんで、こんなことになっているのか...
もう、しばらくお待ちください。

2. これは、TplPrevの内部処理から起こる現象です。
TplPrevでは、プリンタの解像度と無関係に、解像度が0.1mmのメタファイル
を作成し、それを印刷プレビューと印刷に使用しています。この内部処理が
原因のようです。

したがって、プリンタの解像度を低くすれば発生しないようです。
やっぱり見直さないといけないかな。


[755] Re2:印刷プレビュー制御コンポーネントに関して2つほど返信 削除
2006/4/25 (火) 09:25:13 cham
▼ Mr.XRAYさん

お忙しいところ回答いただきありがとうございます。

> 1. これはバグのようです。
> 前にも、この掲示板かメールで問合わせがありました。
> なんで、こんなことになっているのか...
> もう、しばらくお待ちください。


そうでしたか、了解しました。
修正されるまではプレビューしてからの印刷にしておきます。

> 2. これは、TplPrevの内部処理から起こる現象です。
> TplPrevでは、プリンタの解像度と無関係に、解像度が0.1mmのメタファイル
> を作成し、それを印刷プレビューと印刷に使用しています。この内部処理が
> 原因のようです。
>
> したがって、プリンタの解像度を低くすれば発生しないようです。
> やっぱり見直さないといけないかな。


詳細なご説明ありがとうございます。
そういえば昔は点線も出力されていた記憶があり、いつからか
実線になってしまっていたのですが、プリンターを買い替えてから
この現象になってしまったのですね。
とりあえずは、プログラム内で力業?で点線に見えるように
罫線を引くロジックを作成してみようと思います。

ありがとうございました。

[756] Re2:印刷プレビュー制御コンポーネントに関して2つほど返信 削除
2006/4/25 (火) 10:34:46 あぼみ
▼ Mr.XRAYさん

「1.」に関して今年1月に同様の質問をした者です。
今のところ以下のようにして回避しています。

先読み方式ではPageCountプロパティでページ数が分かっていますから、
 PrintFromPage:=1;
 PrintToPage:=PageCount;
 Print;

今までの経験から、最初に BeginDoc; 〜 EndDoc; Print; で出力された
ページ数が以後の最大印刷可能ページ数になってるような気がします。


[766] Re3:印刷プレビュー制御コンポーネントに関して2つほど返信 削除
2006/4/25 (火) 22:37:32 Mr.XRAY
▼ あぼみさん、こんにちは。

> 「1.」に関して今年1月に同様の質問をした者です。
> 今のところ以下のようにして回避しています。


どうもレス、ありがとうございます。
このように、ご自分で対応して頂くと助かります。
今後共、よろしく。何とか、修正を早くしたいと思っています。

[772] Re4:印刷プレビュー制御コンポーネントに関して2つほど返信 削除
2006/4/26 (水) 09:33:47 cham
▼ Mr.XRAYさん

こんにちは。

> 今後共、よろしく。何とか、修正を早くしたいと思っています。

とりあえずの解決策を教えていただきましたので、お時間のある時に
お願いいたします。m(__)m

ちなみに点線の方は

//横線のみ
procedure TfmMain.TensenPrint( x1,x2,y1,y2 : integer );
var
  c : integer;
begin
  c := x1;
  while (c <= x2) do
  begin
    plPrev1.Line( c, c+3, y1, y2 );
    Inc( c, 6 );
  end;
end;

という強引な方法でとりあえず回避しました。
ページ数が少ないリストなのでこれでもスピード的に問題ないのと
他にやり方が思いつかなかったので・・・(汗

[771] Re3:印刷プレビュー制御コンポーネントに関して2つほど返信 削除
2006/4/26 (水) 09:14:08 cham
▼ あぼみさん

こんにちは。


> 先読み方式ではPageCountプロパティでページ数が分かっていますから、
>  PrintFromPage:=1;
>  PrintToPage:=PageCount;
>  Print;
>
> 今までの経験から、最初に BeginDoc; 〜 EndDoc; Print; で出力された
> ページ数が以後の最大印刷可能ページ数になってるような気がします。

なるほど、このような解決方法があるのですね。
早速、修正してみたところ問題なく全ページ印刷できました。
ありがとうございます。

INCM/CMT
Cyclamen v3.82