我想读取所有文件的文件夹并以编程方式打印它们,就好像我右键单击>打印。
我知道以这种方式打印是默认应用程序特定的。所以我认为这是一个两步过程:如何检查具有默认应用程序的文件是否支持print;以及如何实际发出打印文件的命令?
打印这种方式称为“shell命令打印”或类似的东西?谷歌搜索信息需要正确的条款。
您建议执行此任务的其他更好的方法是什么?
编辑:文件类型可以是简单的.txt文件以外的任何文件,例如PDF,DWG,JPEG等。
答案 0 :(得分:1)
我相信这就是你要找的东西:
http://support.microsoft.com/kb/314499
如果这不起作用,那么还有很多其他方法可以使用宏来完成它,或者编写一个非常简单的可视化基本程序来为你完成它。
如果这不起作用,请回复,我会编辑我的帖子。
此致〜
答案 1 :(得分:1)
您可以使用Directory.GetFiles枚举文件夹中的文件,然后使用Process.Start
的ShellExecute模式依次对每个文件执行“print”动词(命令)。
请参阅Process.Start here,您需要传递ProcessStartInfo并UseShellExecute
和Verb
设置正确。
通过要求操作系统确定如何打印它们,您不必担心如何打印不同类型的数据等等的复杂性。
答案 2 :(得分:-1)
As you said: You want to read files in a folder and automatically print them
因此,一个选项可能是读取文件>打开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);
}
}
这是另一个选项 - http://channel9.msdn.com/forums/TechOff/151242-How-to-send-a-PDF-to-a-printer/ --- See the last post。