1

すべてのファイルのフォルダーを読み取り、右クリックして印刷するようにプログラムで印刷したいと考えています。

この方法での印刷は、デフォルトのアプリケーション固有であることを認識しています。したがって、これは 2 段階の手順だと思います。デフォルトのアプリケーションでファイルが印刷をサポートしているかどうかを確認するにはどうすればよいですか。ファイルを印刷するコマンドを実際に発行するにはどうすればよいですか?

この方法での印刷は「シェルコマンド印刷」と呼ばれますか? 情報をグーグルで検索するには、正しい用語が必要です。

このタスクに提案する他のより良い方法はありますか?

EDIT : ファイルの種類は、PDF、DWG、JPEG などの単純な .txt ファイル以外のものにすることができます。

4

3 に答える 3

1

Directory.GetFilesを使用してフォルダー内のファイルを列挙し、ShellExecute モードを使用して、Process.Start各ファイルに対して「印刷」動詞 (コマンド) を順番に実行できます。

Process.Start hereを参照してください。適切に設定されたおよびを使用してProcessStartInfoを渡す必要があります。UseShellExecuteVerb

オペレーティング システムにそれらを印刷する方法を求めることで、さまざまな種類のデータを印刷する方法などの複雑さについて心配する必要がなくなります。

于 2012-06-19T08:46:08.847 に答える
1

これがあなたが探しているものだと思います:

http://support.microsoft.com/kb/314499

それが機能しない場合は、マクロを使用するか、非常に単純な Visual Basic プログラムを作成して実行する方法が他にもたくさんあります。

それがうまくいかない場合はコメントしてください。投稿を編集します。

よろしく〜

于 2012-06-19T08:31:40.350 に答える
-1

As you said: You want to read files in a folder and automatically print them

したがって、1 つのオプションとして、ファイルを読み取り、FileStream を開き、ストリームを送信して印刷することができます。これはストリームを出力するサンプルです -

http://msdn.microsoft.com/en-us/library/system.drawing.printing.printdocument.print.aspx

Printing()サンプルの関数に注目してください。【試してないけど出来そう】

// Print the file.
     public void Printing()
     {
         try 
         {
            streamToPrint = new StreamReader (filePath);
            try 
            {
               printFont = new Font("Arial", 10);
               PrintDocument pd = new PrintDocument(); 
               pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
               // Print the document.
               pd.Print();
            } 
            finally 
            {
               streamToPrint.Close() ;
            }
        } 
        catch(Exception ex) 
        { 
            MessageBox.Show(ex.Message);
        }
     }

もう 1 つのオプションがあります - http://channel9.msdn.com/forums/TechOff/151242-How-to-send-a-PDF-to-a-printer/ ---最後の投稿を参照してください

于 2012-06-19T08:39:52.893 に答える