C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■89582 / )  C#によるプリンタ制御
□投稿者/ S.Kos (1回)-(2018/12/06(Thu) 09:37:36)

分類:[C#] 

みなさま、こんにちは
プリンタ制御について、ここでも多くのやり取りがありますが、いまひとつしっくりしません。

以下、直接的なご教示はもちろん、どこどこを見よ、とのご示唆だけでもいただければ幸いです。

デフォルトプリンタの、例えば「両面印刷」を、コンソールから制御しようと考えています。
例えば CtrlPrinter.exe -V とすると長編綴じ両面印刷に、
    CtrlPrinter.exe -S で片面印刷、てな風に…

これまでに、ゴリゴリ(笑)のCによるアプリケーションで、DEVMODE構造体を取得して書き戻したことがあります。

けれども.NETの時代、C#で・・・、行き詰まりました。


Windows10/Pro + VSEXPRESS2017forWindowDesktop 環境です。

using System.Drawing;
using System.Drawing.Printing;
using System.Printing;
とした上で、

System.Drawing.Printing.PrintDocument pd = new System.Drawing.Printing.PrintDocument();
これは巧くデキているようです。

なぜなら、
pd.PrinterSettings.PrinterName にデフォルトのプリンタ名
pd.PrinterSettings.CanDuplex に両面印刷機能の有無
pd.PrinterSettings.Duplex に両面/片面設定情報
を読み出しています。

さて、両面/片面情報を書き換え、例えば
pd.PrinterSettings.Duplex = System.Drawing.Printing.Duplex.Horizontal
とし、これをプリンタドライバに書き戻すところで、行き詰まりました。


書き換えた情報を、プリンタドライバへ書き戻す術を、ご教示ください。Win32APIレベルだと ResetDC() の感覚ですね・・。

そもそもC#で、実際のプリンタ書き出しを前提とせず、プリンタドライバの設定だけを変更する、なんてコトはできないのでしょうか?


返信 編集キー/


管理者用

- Child Tree -