0

以下代码在 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;
}
4

1 回答 1

1

我认为您在两个系统中对 pdf 打印有不同的设置。
在 winXP 和 win7 中检查 .pdf 文件类型的“打印”动词。你得到同样的结果?

为了检查和比较,你可以使用这个软件:nirsoft-file_types_manager
也许你会得到这样的链接:

print
"C:\Program Files (x86)\Foxit Software\Foxit Reader\Foxit Reader.exe" /p "%1"

作为解决方案,我建议执行以下步骤:

  1. 检查系统中 PDF 的“打印”动词。如果缺少此动词,则重新安装 PDF 软件。

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

  3. 如果正确安装了用于打开(和打印)PDF 文件的软件,请尝试使用“打开”动词。如果这个工作并且打印不,然后尝试重新安装 PDF 软件。

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

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

如果它不起作用,则重新安装 PDF 软件。如果它可以从命令行运行,但不能从您的软件运行,那么我不知道如何为您提供帮助。

于 2013-07-18T16:42:10.777 回答