首页 > 解决方案 > 如何使用 ghostscript 开关更改打印队列中的文档名称

问题描述

我需要重命名通过ghostscript以编程方式发送到打印机的作业,目前代码可以打印和配置一些ghostscript开关。问题是,当作业在打印队列中时,文档名称始终设置为Ghostscript Output,我想将该名称更改为更有意义的名称。

根据这个说明文档名称可以通过命令行设置的文档,我尝试过并且可以确认可以通过命令行更改文档名称。

但是当我尝试以编程方式设置此参数时,它不起作用。

以下是将作业发送到打印机的代码:

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("-dNoCancel");
    switches.Add(@"-sFRONTPATH=" + System.Environment.GetFolderPath(System.Environment.SpecialFolder.Fonts));
    switches.Add("-sPAPERSIZE=a4");
    switches.Add("-dFIXEDMEDIA");
    switches.Add("-dPDFFitPage");
    if (pagerange)
    {
        switches.Add("-dFirstPage=" + 1);
        switches.Add("-dLastPage=" + 2);
    }
    switches.Add("-dNumCopies=" + 1);
    switches.Add("-sDEVICE=mswinpr2");
    switches.Add(Convert.ToString("-sOutputFile=%printer%") + printerName);
    switches.Add(" - f");
    switches.Add(fileName);

    processor.Process(switches.ToArray(), null);
}

标签: c#ghostscript

解决方案


您确实可以设置文档名称,但根本不清楚您使用了哪个命令行参数来设置它。据我从您的代码中可以看出,您没有设置它。

命令行参数是 DocumentName,它是 mswinpr2 设备独有的。它在您在第 10.2 节支持的选项(设备属性)中指向的页面上定义。您可以尝试-sDocumentname=...在命令行上进行设置,我认为这应该可以。正如 Panagiotis 所说,更改 OutputFile 将允许您选择不同的 pritner,它对作业的名称没有任何作用。


推荐阅读