gpt4 book ai didi

c# - 尝试打印 pdf 文件时出错

转载 作者:太空宇宙 更新时间:2023-11-03 16:25:29 28 4
gpt4 key购买 nike

我试图使用控制台应用程序在后台打印 pdf 文档。我使用了这样做的过程。控制台应用程序将 pdf 文件发送到打印机,但在后台以最小化模式打开的 adobe reader 抛出以下错误“打开此文档时出错。找不到此文件”。因此,在多次打印时,我无法终止进程。有没有可能摆脱这个错误?我的要求是使用流程打印 pdf 文件,同时必须以最小化模式打开 pdf 文件,打印完成后,阅读器需要自动关闭。我试过下面的代码,但仍然抛出错误..

string file = "D:\\hat.pdf"; 
PrinterSettings ps = new PrinterSettings();
string printer = ps.PrinterName;
Process.Start(Registry.LocalMachine.OpenSubKe(@"SOFTWARE\Microsoft\Windows\CurrentVersion"+@"\App Paths\AcroRd32.exe").GetValue("").ToString(),string.Format("/h /t \"{0}\" \"{1}\"", file, printer));

最佳答案

由于您希望在打印文档时在后台打开 Acrobat 阅读器,您可以使用如下内容:

private static void RunExecutable(string executable, string arguments) 
{
ProcessStartInfo starter = new ProcessStartInfo(executable, arguments);
starter.CreateNoWindow = true;
starter.RedirectStandardOutput = true;
starter.UseShellExecute = false;

Process process = new Process();
process.StartInfo = starter;
process.Start();

StringBuilder buffer = new StringBuilder();
using (StreamReader reader = process.StandardOutput)
{
string line = reader.ReadLine();
while (line != null)
{
buffer.Append(line);
buffer.Append(Environment.NewLine);
line = reader.ReadLine();
Thread.Sleep(100);
}
}
if (process.ExitCode != 0)
{
throw new Exception(string.Format(@"""{0}"" exited with ExitCode {1}. Output: {2}",
executable, process.ExitCode, buffer.ToString());
}

您可以通过将上述代码合并到您的项目中并按如下方式使用它来打印您的 PDF:

string pathToExecutable = "c:\...\acrord32.exe";
RunExecutable(pathToExecutable, @"/t ""mytest.pdf"" ""My Windows PrinterName""");

此代码取自 http://aspalliance.com/514_CodeSnip_Printing_PDF_from_NET.all

如果您不需要在后台打开 Acrobat Reader,而只是像打印任何其他文档一样打印 pdf,您可以查看 PrintDocument 类:

http://msdn.microsoft.com/en-us/library/system.drawing.printing.printdocument.print.aspx

关于c# - 尝试打印 pdf 文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12723013/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com