1

私がやろうとしているのは、ダイアログボックスを表示せずに横向きモードでこれを印刷することです。これは私がこれまでに持っているものです:

((mshtml.IHTMLDocument2)Browser.Document.DomDocument).execCommand("Print", true, 0);

横向きモードで印刷するための命令は、3番目の引数を介して送信する必要があることは知っていますが、これを行うために3番目の引数を作成する方法がわかりません。この最後の議論を私の目標を達成させる方法について誰かが私に助けを与えることができますか?

4

2 に答える 2

1

私は主にデスクトップアプリに固執していて、あなたがやりたいことをする方法がわかりません。しかし、私はmsdnのドキュメントをざっと見てみましたが、「印刷」コマンド(IDM_EXECPRINT)はあなたが探しているものではないようです。メソッドのドキュメントによると、ユーザーインターフェイスを表示したくない場合は、2番目のパラメーターをfalseにする必要があります。IDM_EXECPRINTコマンドが常にダイアログを表示するように見えることを除いて、それは問題ないように聞こえます(「ユーザーインターフェイス:はい。パラメータをtrueに設定するか省略してください」)。

msdnドキュメント:IHTMLDocument2 :: execCommandメソッドIDM_EXECPRINT

私が間違っている場合は誰かが私を訂正してください、しかしあなたは別のコマンドを探したいと思うかもしれません。

編集: mshtmcid.hのIDM_PRINTコマンドを使用すると、運が良くなる可能性があります。このコマンドのダイアログはオプションです。サンプルアプリケーション(C ++)は次のとおりです。http://msdn.microsoft.com/en-us/library/bb250434 (VS.85).aspx

于 2011-02-12T04:43:53.517 に答える
0

追加:これはMicrosofthttp://msdn.microsoft.com/en-us/library/system.drawing.printing.printdocument.defaultpagesettings%28v=vs.71%29.aspxからのものです

public void Printing()
{
   try
   {
      streamToPrint = new StreamReader (filePath);
      try
      {
         printFont = new Font("Arial", 10);
         PrintDocument pd = new PrintDocument(); 
         pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
         pd.PrinterSettings.PrinterName = printer;
         // Set the page orientation to landscape.
         pd.DefaultPageSettings.Landscape = true;
         pd.Print();
      } 
      finally
      {
         streamToPrint.Close() ;
      }
   } 
   catch(Exception ex)
   { 
      MessageBox.Show(ex.Message);
   }
}

したがって、おそらくpd上記の例ではドキュメントに置き換えるだけです。


元の回答:おそらく統合:

DefaultPageSettings.Landscape = true;

だから多分このようなもの:

((mshtml.IHTMLDocument2)Browser.Document.DomDocument).DefaultPageSettings.Landscape = true;
((mshtml.IHTMLDocument2)Browser.Document.DomDocument).execCommand("Print", true, 0);

C#は弱点であるため、暗闇の中で少し突き刺しますが、これは私がかつてC#アプリケーションから行った方法だと思います。

于 2011-02-11T23:36:19.143 に答える