Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.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#代码中直接打印文件(如pdf)?_C#_Windows_Printing_Windows 10 - Fatal编程技术网

如何从C#代码中直接打印文件(如pdf)?

如何从C#代码中直接打印文件(如pdf)?,c#,windows,printing,windows-10,C#,Windows,Printing,Windows 10,这里有一个来自C#新手的简单问题 我的目标是直接从C#代码打印文件,理想情况下不显示打印对话框和选择一些选项。是否有任何Windows API可以依赖和调用?例如,可以让我选择打印多少份,哪台打印机,然后直接发送给它 有什么建议吗?谢谢 根据这篇文章 您只需启动一个新流程: Process p = new Process(); p.StartInfo = new ProcessStartInfo() { CreateNoWindow = true, Verb = "print"

这里有一个来自C#新手的简单问题

我的目标是直接从C#代码打印文件,理想情况下不显示打印对话框和选择一些选项。是否有任何Windows API可以依赖和调用?例如,可以让我选择打印多少份,哪台打印机,然后直接发送给它

有什么建议吗?谢谢

根据这篇文章

您只需启动一个新流程:

Process p = new Process();
p.StartInfo = new ProcessStartInfo()
{
    CreateNoWindow = true,
    Verb = "print",
    FileName = path //put the correct path here
};
p.Start();

如果安装了AdobeAcrobatReader这样的pdf阅读器,它就可以正常工作了

根据这篇文章

您只需启动一个新流程:

Process p = new Process();
p.StartInfo = new ProcessStartInfo()
{
    CreateNoWindow = true,
    Verb = "print",
    FileName = path //put the correct path here
};
p.Start();

如果安装了AdobeAcrobatReader这样的pdf阅读器,它就可以正常工作了

“打印文件”相当模糊

如果可以找到.NET库(或编写自己的库)来打开特定类型的文件、读取内容,然后呈现内容,则可以使用内置的.NET类,如FixedDocument类(中引用)来构建打印输出并将其发送到打印机

如果您想在文件系统上打印任意文件,并且假设安装了一个可以打开和打印该类型文件的程序,并且该程序在右键单击菜单中安装了一个“print”动词,那么您应该能够使用上面Mark回答中的“ProcessStartInfo”方法。模拟用户右键单击文件并选择名为“打印”的选项

不管怎样,在没有用户输入的情况下在Windows上打印本身就是一个独立的问题。出现的打印对话框通常是特定打印机驱动程序的一部分(而不是通用Windows打印机对话框),包括特定于该打印机的选项,如双面打印或选择特定纸盒等。许多驱动程序根本没有提供设置这些选项的编程方法,而那些确实需要特定于该驱动程序的代码的人。您可以通过编程方式指定常规选项(例如副本数),但任何额外功能都将被禁用或使用默认值

希望这有帮助

“打印文件”相当模糊

如果可以找到.NET库(或编写自己的库)来打开特定类型的文件、读取内容,然后呈现内容,则可以使用内置的.NET类,如FixedDocument类(中引用)来构建打印输出并将其发送到打印机

如果您想在文件系统上打印任意文件,并且假设安装了一个可以打开和打印该类型文件的程序,并且该程序在右键单击菜单中安装了一个“print”动词,那么您应该能够使用上面Mark回答中的“ProcessStartInfo”方法。模拟用户右键单击文件并选择名为“打印”的选项

不管怎样,在没有用户输入的情况下在Windows上打印本身就是一个独立的问题。出现的打印对话框通常是特定打印机驱动程序的一部分(而不是通用Windows打印机对话框),包括特定于该打印机的选项,如双面打印或选择特定纸盒等。许多驱动程序根本没有提供设置这些选项的编程方法,而那些确实需要特定于该驱动程序的代码的人。您可以通过编程方式指定常规选项(例如副本数),但任何额外功能都将被禁用或使用默认值


希望这有帮助

没有公认的答案,但可能是这个?:没有公认的答案,但可能是这个?:谢谢马克,我会试试!谢谢马克,我会努力的!谢谢特雷弗的详细解释。是的,我的目标是在可以打开和打印的文件系统上打印任意文件;因此,我将尝试按照下面Mark列出的方向进行操作!谢谢特雷弗的详细解释。是的,我的目标是在可以打开和打印的文件系统上打印任意文件;因此,我将尝试按照下面Mark列出的方向进行操作!