【解決方法】.NET印刷ドキュメントC#で印刷可能領域のマージンを取得する方法


何年も前から同じ問題があります

プリンターに印刷可能領域を設定する方法が必要です

マージン境界は、10 ~ 20 ピクセルの間でいくつかのプリンタ デバイスによって異なります。

答えは得られますか?

私が試したこと:

印刷可能領域を設定してプレビューしてプリンターに印刷するためのコードをさらにテストしました

しかし、ハードマージンの左と上のマージン境界を取得できませんでした

解決策 1

印刷可能領域は次の方法で取得できます。 PageSettings.PrintableArea プロパティ (System.Drawing.Printing) Microsoft ドキュメント[^]しかし、設定することはできません – 読み取り専用です。

考えてみてください。どこに印刷可能領域があるかをプリンタに伝えることはできません。これは、ハードウェアの用紙処理システムによって、プリンタがインクを配置できる場所と配置できない場所が決定されるためです。ハードウェアによって、ヘッドが用紙の端から 2cm 未満に到達することが妨げられている場合は、どんなにやりたくても、端から1cmのところに印刷するように指示することはできません。

印刷可能領域はプリンターごとに異なり、ソフトウェアでは変更できません。

解決策 3

これを試してみてください

e.Graphics.TranslateTransform(-e.PageSettings.HardMarginX , -e.PageSettings.HardMarginY);

解決策 2

こんにちは、グリフさん

ご回答ありがとうございます。

System.Drawing によってビルドされた Crystal レポートまたは DevExpress レポート

System.Drawing.Printing では、印刷するときにマージン境界が定数であることがわかります。

プリンタおよび任意のプリンタ デバイス向け

コメント

タイトルとURLをコピーしました