C# PDF不是从Windows XP打印的,而是在Windows 7上工作的
以下代码在Windows 7上成功打印,但在Windows XP上不起作用。如果我进入记事本手动打印文档,这两台计算机都有默认的打印机设置,可以正常工作。在Windows XP框中,它只是放在那里,没有错误,什么都没有 我如何调试它以获得错误消息,或者以其他方式找出它不打印的原因C# PDF不是从Windows XP打印的,而是在Windows 7上工作的,c#,C#,以下代码在Windows 7上成功打印,但在Windows XP上不起作用。如果我进入记事本手动打印文档,这两台计算机都有默认的打印机设置,可以正常工作。在Windows XP框中,它只是放在那里,没有错误,什么都没有 我如何调试它以获得错误消息,或者以其他方式找出它不打印的原因 try { if (File.Exists(pdfPath)) { Process process = new Process(); process.StartInfo.
try
{
if (File.Exists(pdfPath))
{
Process process = new Process();
process.StartInfo.FileName = pdfPath;
process.StartInfo.Verb = "print";
process.StartInfo.CreateNoWindow = true;
process.Start();
process.WaitForInputIdle();
process.Kill();
}
else
{
MessageBox.Show("The file \"" + pdfPath + "\" does not exist", "File not found", MessageBoxButtons.OK, MessageBoxIcon.Error);
statusLabel.Text = "";
return;
}
}
catch (Exception e)
{
MessageBox.Show(e.Message, "Unable to print packing slip", MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}
我发现两种系统的pdf打印设置不同。
检查.pdf文件类型的“打印”动词。。在winXP和win7中。你得到同样的结果了吗 要进行检查和比较,您可以使用此软件:
也许你会得到这样的链接:
打印
“C:\ProgramFiles(x86)\Foxit Software\Foxit Reader\Foxit Reader.exe”/p”%1“
作为解决方案,我建议执行以下步骤:
如果它不起作用,则重新安装PDF软件。如果它在命令行中起作用,但在您的软件中不起作用,则我不知道如何帮助您。它是否在输出窗口中显示任何内容?我对C#非常陌生,但我在目标计算机上的应用程序没有我知道的输出窗口。我在那里有一个名为
statusLab的状态栏el
我手动更新…输出窗口是Visual Studio中的一个诊断窗口;@Bob意味着在调试器中运行你的应用程序。尝试添加process.StartInfo.UseShellExecute=true
。很好的建议…当我按照你的建议运行命令时,它工作正常,但是当我按照建议运行Print
动词时,它会显示myfile.pdf正在打印…
并且就在那里。你有没有想过为什么会这样?你能从该软件打印pdf文档吗?你可以通过打开
webr打开它吗?所需的打印机是否设置为默认打印机?“就在那里”表示你看到“打印”在没有任何打印过程的情况下不会关闭或打开并关闭的消息?。好的,我们可以尝试检查打印日志:打开windows运行(WIN+R或单击开始>运行)并键入:eventvwr查找系统日志(抱歉,我在Win7中没有WinXP:WindowsLogs-system)并检查文档是否已打印。如何启用打印服务日志?我不知道如何在WinXP中执行此操作可能有以下帮助:在Win7中,您可以打开事件查看器-应用程序和服务日志-Microsoft-Windows-打印服务-操作-操作:启用日志,然后您将看到此日志中的任何打印。您的打印文件是否可见?在righ下t打印机?。但仍然没有打印?。您可以直接从该软件打印文件?。这对我来说太神秘了:)谢谢您的关注。我们执行的命令从未出现在那里。在这一点上,我承认电脑有问题,我将等待他们将其更新到Windows7,以期解决这个问题。