C# PDF不是从Windows XP打印的,而是在Windows 7上工作的

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.

以下代码在Windows 7上成功打印,但在Windows XP上不起作用。如果我进入记事本手动打印文档,这两台计算机都有默认的打印机设置,可以正常工作。在Windows XP框中,它只是放在那里,没有错误,什么都没有

我如何调试它以获得错误消息,或者以其他方式找出它不打印的原因

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的“打印”动词。如果缺少此动词,请重新安装PDF软件

  • 如果得到的命令不同,请尝试在两个系统中使用相同的软件。使用来自nirsoft的软件,您可以尝试编辑XP命令来修复它(如果您“错误地”卸载了PDF软件,则这可能在系统中)。如果您知道带参数的路径,则可以尝试编辑此命令

  • 如果用于打开(和打印)PDF文件的软件安装正确,请尝试使用“打开”动词。如果此操作有效且打印不正确,请尝试重新安装PDF软件

  • 如果所有这些步骤都没有帮助,命令是相同的,并且打开的文件工作正常,那么您可以尝试使用命令直接打印PDF,以检查命令是否工作

  • 在winXP中,将%1替换为您的文件名,并在运行窗口中运行此命令(以快捷方式WIN+R开始)警告:如果有效,将打印您的文件

  • 如果它不起作用,则重新安装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,以期解决这个问题。