Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以编程方式单击鼠标右键并打印文件_C#_Winforms - Fatal编程技术网

C# 以编程方式单击鼠标右键并打印文件

C# 以编程方式单击鼠标右键并打印文件,c#,winforms,C#,Winforms,我想读取所有文件的文件夹,并以编程方式打印它们,就像我右键单击>打印一样 我知道以这种方式打印是特定于默认应用程序的。因此,我认为这是一个分为两步的过程:如何检查带有默认应用程序的文件是否支持打印;我实际上如何发出打印文件的命令 这种打印方式称为“shell命令打印”还是类似的方式?在谷歌搜索信息时需要正确的术语 对于这项任务,您还有其他更好的建议吗 编辑:文件类型可以是简单的.txt文件以外的任何文件,例如PDF、DWG、JPEG等。我相信这就是您要查找的: 如果这不起作用,那么还有很多其他

我想读取所有文件的文件夹,并以编程方式打印它们,就像我右键单击>打印一样

我知道以这种方式打印是特定于默认应用程序的。因此,我认为这是一个分为两步的过程:如何检查带有默认应用程序的文件是否支持打印;我实际上如何发出打印文件的命令

这种打印方式称为“shell命令打印”还是类似的方式?在谷歌搜索信息时需要正确的术语

对于这项任务,您还有其他更好的建议吗


编辑:文件类型可以是简单的.txt文件以外的任何文件,例如PDF、DWG、JPEG等。

我相信这就是您要查找的:

如果这不起作用,那么还有很多其他方法可以使用宏或编写一个非常简单的visual basic程序来完成

如果不起作用,请回复,我将编辑我的帖子


问候~

我相信这就是您想要的:

如果这不起作用,那么还有很多其他方法可以使用宏或编写一个非常简单的visual basic程序来完成

如果不起作用,请回复,我将编辑我的帖子


正如您所说的~

:您希望读取文件夹中的文件并自动打印它们

因此,一个选项可以是读取文件>打开文件流并将文件流发送到打印。这是一个打印流的示例-

注意示例中的
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);
        }
     }

这里还有一个选项---.

正如您所说:您希望读取文件夹中的文件并自动打印它们

因此,一个选项可以是读取文件>打开文件流并将文件流发送到打印。这是一个打印流的示例-

注意示例中的
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);
        }
     }

这里还有一个选项---。

您可以使用枚举文件夹中的文件,然后使用
进程的ShellExecute模式。启动
对每个文件依次执行“打印”动词(命令)

请参阅,您将需要通过适当设置
UseShellExecute
动词
传入一个


通过要求操作系统确定如何打印它们,您不必担心如何打印不同类型的数据等的复杂性。

您可以使用枚举文件夹中的文件,然后使用
进程的ShellExecute模式。启动
依次对每个文件执行“打印”动词(命令)

请参阅,您将需要通过适当设置
UseShellExecute
动词
传入一个


通过让操作系统确定如何打印它们,您不必担心如何打印不同类型数据的复杂性,等等。

@Jeremythonpson
print/d:\\printserver\sharenamedrive:\path\filename
根据Rohan Durve在回答中的链接。@Jeremythonpson
print/d:\\printserver\sharenamedrive:\path\filename
根据Rohan Durve在回答中的链接。我已经对打印机直接支持的所有文件类型进行了测试。这是方法已由我针对打印机直接支持的所有文件类型进行了测试。