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#で、実際のプリンタ書き出しを前提とせず、プリンタドライバの設定だけを変更する、なんてコトはできないのでしょうか?


編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
親記事 →Re[1]: C#によるプリンタ制御 /魔界の仮面弁士
→Re[1]: C#によるプリンタ制御 /Jitta
 
上記関連ツリー

C#によるプリンタ制御 / S.Kos (18/12/06(Thu) 09:37) #89582 ←Now
Re[1]: C#によるプリンタ制御 / 魔界の仮面弁士 (18/12/06(Thu) 10:21) #89583
│└ Re[2]: C#によるプリンタ制御 / S.Kos (18/12/06(Thu) 12:17) #89584
│  └ Re[3]: C#によるプリンタ制御 / 魔界の仮面弁士 (18/12/06(Thu) 14:54) #89586
Re[1]: C#によるプリンタ制御 / Jitta (18/12/06(Thu) 15:54) #89587
  └ Re[2]: C#によるプリンタ制御 / S.Kos (18/12/06(Thu) 16:23) #89588 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信