喫茶XRAYトップページ

[スレッド全体
]

[5292] 印字プレビューコンポーネントのXY座標に関して質問返信 削除
2011/9/22 (木) 14:33:12 snail3
テストプログラムの TextRect で色々と勉強しています。

procedure TForm1.SpeedButton1Click(Sender: TObject);

メソッドでソースを一部修正しました

    YStart := 0;  // 300 -> 0

    //矩形の左上から描画
    X1  := 0;      // 150 -> 0

この状態で印字を行うと一部印字されません。

左上座標はどのように求めればよいか教えて下さい。

よろしくお願いいたします。

[5293] Re:印字プレビューコンポーネントのXY座標に関して質問返信 削除
2011/9/22 (木) 16:54:17 snail3
失礼しました。
ちゃんと書いて有りました。

用紙左端のオフセット値  この座標値より左に描画コードを書いてもクリップされて印刷しない

以下様に修正して表示を確認しました。


    YStart := plPrev1.TopOffset;

    //矩形の左上から描画
    X1  := plPrev1.LeftOffset;




[5294] Re2:印字プレビューコンポーネントのXY座標に関して質問返信 削除
2011/9/22 (木) 19:35:39 Mr.XRAY
▼ snail3さん、こんにちは。

> ちゃんと書いて有りました。

そうですか。見てしまったのですか・・・
そのままだったら、「ここに書いてある!!」と言おうと思ったのニィ。
つまんない。
また何かありましたら、是非お越しください。


[5297] フチなし印刷返信 削除
2011/9/23 (金) 07:34:30 Mr.XRAY
ちょっとひどいレスでしたので、改めて。

多くのプリンタは、デフォルトの状態では、用紙の四辺に印刷しない領域が
あります。これがオフセット値です。
写真、画像を用紙全体に印刷するために、「フチなし印刷」というプロパティ
があるプリンタもあります。これを有効にすると下図のように、
YStart := 0;
の位置でも印刷することになります。
もし、テストに使用したプリンタに、このプロパティがありましたら、試して
みてください。



[5348] Re:フチなし印刷返信 削除
2011/10/1 (土) 10:19:25 snail3
詳しい解説ありがとうございました。

あと私が使って、はまった点を覚えとして書いておきます。
四角を描画して気がついたのですが、最大描画可能領域に四角形を描画
するためには

plPrev1.RectLine( plPrev1.LeftOffset, ( plPrev1.RightOffset - 1 )
    , plPrev1.TopOffset, ( plPrev1.BottomOffset - 1 ) );

LeftOffset TopOffset   は印字可能領域
RightOffset BottomOffset  は印字不可能領域


テストプログラムとコンポーネントソースも公開していただいているので
わからない点も色々と試せて安心です。

今後は 他のコンポーネントも使わせていただきたいと思っています。

色々な解説とソフトの公開に感謝しています。



[5350] Re2:フチなし印刷返信 削除
2011/10/1 (土) 10:34:41 Mr.XRAY
▼ snail3さん

> 四角を描画して気がついたのですが、最大描画可能領域に四角形を描画
> するためには


です,-1が必要ですね.0だと最大可能領域の値と重なってしまいます.
この「最大描画可能」という用語の解釈が問題なのですが,
いろいろ調べてこの仕様になっています.
私的には「可能」なんだから,描画してもいいんじゃないの? なんですが.

何か説明に,この部分,つまり右端と下端を含まない,というのがありました.
これは印刷プレビュー制御コンポに限らず,領域を扱う際の注意事項です.
どうやら,端の値ではなく,幅,高さが基準のようです.

それと,-1でも,ドライバによっては描画されない場合があります.
少し余裕を持たせた方が無難だと思います.


[5351] Re3:フチなし印刷返信 削除
2011/10/1 (土) 12:46:15 snail3
 
> それと,-1でも,ドライバによっては描画されない場合があります.
> 少し余裕を持たせた方が無難だと思います.


そうなんですか、必ずしも -1 ではないんですね。

そういえば昔、リコーのプリンタにすると文字が印字されない!
という現象が出て、調べてみると一部でも描画領域を越えると、
「越えない分も含めて印字しない」(EPSONなんかは単純に文字が切れるだけ)
というのがありました。




[5354] Re4:フチなし印刷返信 削除
2011/10/1 (土) 13:10:32 Mr.XRAY
▼ snail3さん

> そうなんですか、必ずしも -1 ではないんですね。

そうなんですよ.MSDNの記事にも,領域取得のAPIに説明があります.

これは,領域取得のAPIとはまた別の問題ですが,
昔,Niftyの会議室でも時々話題になっていました.印刷ではないのですが,
TImageに描画,あるいは,塗り潰しの時に右端と下端が処理されないとか.
描画を伴うアプリの開発には要注意ですね.


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