我想从C#代码中打印PDF文件,而无需用户交互。
我尝试了this accepted answer,但它对我不起作用。
这是我尝试的代码:
Process p = new Process();
p.StartInfo = new ProcessStartInfo()
{
CreateNoWindow = true,
Verb = "print",
FileName = @"G:\Visual Studio Projects\PrintWithoutGUI\PrintWithoutGUI\Courses.pdf" //put the correct path here
};
p.Start();
我得到这个例外情况:
System.ComponentModel.Win32Exception:'指定的可执行文件不是此OS平台的有效应用程序。'
答案 0 :(得分:0)
这里肯定有错:FileName
不应是您要打印的pdf,而应是您要执行的可执行过程的路径,因此错误消息< / p>
答案 1 :(得分:0)
这是编写代码的正确方法
Process p = new Process();
p.StartInfo = new ProcessStartInfo()
{
CreateNoWindow = true,
Verb = "print",
FileName = "PDfReader.exe", //put the path to the pdf reading software e.g. Adobe Acrobat
Arguments = "PdfFile.pdf" // put the path of the pdf file you want to print
};
p.Start();
答案 2 :(得分:0)
通过添加 UseShellExecute=true 尝试此操作,它将打印到默认打印机,但如果您想打印到特定打印,请将 verb 打印更改为动词 printTo,方法是指定打印机名称参数属性。
private static void PrintByProcess()
{
using (Process p = new Process())
{
p.StartInfo = new ProcessStartInfo()
{
CreateNoWindow = true,
UseShellExecute=true,
Verb = "print",
FileName = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\doc.pdf"
};
p.Start();
}