C# 使用windows窗体应用程序在不打开“打印”对话框的情况下打印pdf文件
我想在不打开打印对话框的情况下从windows应用程序打印PDF文件(url) 我试过下面的代码C# 使用windows窗体应用程序在不打开“打印”对话框的情况下打印pdf文件,c#,.net,winforms,file,printing,C#,.net,Winforms,File,Printing,我想在不打开打印对话框的情况下从windows应用程序打印PDF文件(url) 我试过下面的代码 string pdfUrl="mysite.com/test.pdf"; string printerName = "Microsoft Print To PDF"; using (var client = new System.Net.WebClient()) { client.Proxy.Credential
string pdfUrl="mysite.com/test.pdf";
string printerName = "Microsoft Print To PDF";
using (var client = new System.Net.WebClient())
{
client.Proxy.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
client.DownloadFile(pdfUrl, filePath);
}
ProcessStartInfo info = new ProcessStartInfo();
info.Verb = "print";
info.FileName = filePath;
info.Arguments = "\"" + printerName + "\"";
info.UseShellExecute = true;
info.CreateNoWindow = true;
info.WindowStyle = ProcessWindowStyle.Hidden;
info.WorkingDirectory = Path.GetDirectoryName(filePath);
Process p = new Process();
p.StartInfo = info;
p.Start();
//p.WaitForInputIdle();
//System.Threading.Thread.Sleep(3000);
//if (false == p.CloseMainWindow())
// p.Kill();
但是在p.Start()中出错强>吼叫
System.ComponentModel.Win32Exception:没有应用程序与此操作的指定文件关联
少了什么
请建议如何解决此问题。我的意见是,您应该使用任何第三方库来打印PDF。 我们正在使用以下C#PDF库 是的,这是商业图书馆,所以我不知道我是否有权在这里放置链接 以下是无需任何用户交互即可打印PDF的代码:
public void PrintPdf()
{
var doc = PdfDocument.Load("c:\test.pdf");
var printDoc = new PdfPrintDocument(doc);
PrintController printController = new StandardPrintController();
printDoc.PrintController = printController;
printDoc.Print(); // Print PDF document
}
我的意见是,您应该使用任何第三方库来打印PDF。 我们正在使用以下C#PDF库 是的,这是商业图书馆,所以我不知道我是否有权在这里放置链接 以下是无需任何用户交互即可打印PDF的代码:
public void PrintPdf()
{
var doc = PdfDocument.Load("c:\test.pdf");
var printDoc = new PdfPrintDocument(doc);
PrintController printController = new StandardPrintController();
printDoc.PrintController = printController;
printDoc.Print(); // Print PDF document
}
你安装了什么程序来打印PDF?我没有使用任何程序。我需要任何带有此代码的程序吗?Microsoft Edge是我机器PDF的默认启动器我已将其更改为acrobat reader。然后使用“Microsoft print To PDF”成功打印,但当我将打印机命名为“Microsoft XPS Document Writer”时,它也使用“Microsoft print To PDF”打印,我已将其更改为acrobat reader。然后使用打印机“Microsoft print To PDF”打印成功,但当我将打印机命名为“Microsoft XPS Document Writer”时,它也会使用打印机“Microsoft print To PDF”打印。如何将文档打印到任何打印机“info.Arguments=“\”“+printerName+”\”“;”?您安装了什么程序来打印PDF?我没有使用任何程序。我需要任何带有此代码的程序吗?Microsoft Edge是我机器PDF的默认启动器我已将其更改为acrobat reader。然后使用“Microsoft print To PDF”成功打印,但当我将打印机命名为“Microsoft XPS Document Writer”时,它也使用“Microsoft print To PDF”打印,我已将其更改为acrobat reader。然后使用打印机“Microsoft print To PDF”打印成功,但当我将打印机命名为“Microsoft XPS Document Writer”时,它也会使用打印机“Microsoft print To PDF”打印。如何将文档打印到任何打印机“info.Arguments=“\”“+printerName+”\”“;”?