0

我正在尝试使用 ghostscript 打印 PDF 文档。我正在使用 GHOSTPRINT.NET 包装器。我已经能够实现将输出发送到打印机,但是它仍然停留在假脱机状态。不确定它是否与我正在使用的开关或文件本身有关。任何帮助将不胜感激。这是代码:

 public static void PrintFormPdfData(byte[] formPdfData, string printer)
    {
        string tempFile;

        tempFile = Path.GetTempFileName();

        using (FileStream fs = new FileStream(tempFile, FileMode.Create))
        {
            fs.Write(formPdfData, 0, formPdfData.Length);
            fs.Flush();
        }
        using (GhostscriptProcessor processor = new GhostscriptProcessor())
        {
            List<string> switches = new List<string>();
            switches.Add("-empty");
            switches.Add("-dPrinted");
            switches.Add("-dBATCH");
            switches.Add("-dNOPAUSE");
            switches.Add("-dNOSAFER");
            switches.Add("-dNumCopies=1");
            switches.Add("-sDEVICE=mswinpr2");
            switches.Add("-sOutputFile=%printer%" + printer);
            switches.Add("-f");
            switches.Add(tempFile);

            processor.StartProcessing(switches.ToArray(), null);
        }
    }
4

1 回答 1

1

如果我是你,我会从使用命令 shell 开始,然后从命令行运行 Ghostscript。

如果这不起作用,那么我们可以更进一步,但目前您实际上是在同时寻求 2 个不同组件的帮助,Ghostscript 和 Ghostscript.NET C# 包装器。理想情况下,您需要首先确定问题出在哪里,如果它在命令 shell 中起作用,那么它与 Ghostscript.NET 有关。如果没有,那么它与 Ghostscript 有关。

请注意,尾随的“-f”可能是问题的一部分。你不需要它,除非你:

a) 使用 -c 开关来介绍 PostScript,并且 b) 打算在它之后提供更多选项。

于 2017-02-09T08:22:33.997 回答