c# - 如何使用 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);
}
解决方案
您确实可以设置文档名称,但根本不清楚您使用了哪个命令行参数来设置它。据我从您的代码中可以看出,您没有设置它。
命令行参数是 DocumentName,它是 mswinpr2 设备独有的。它在您在第 10.2 节支持的选项(设备属性)中指向的页面上定义。您可以尝试-sDocumentname=...
在命令行上进行设置,我认为这应该可以。正如 Panagiotis 所说,更改 OutputFile 将允许您选择不同的 pritner,它对作业的名称没有任何作用。
推荐阅读
- javascript - 选择表单更改时更改链接参数
- android - AlertDialog dialog.dismiss(), dialog.close() 不工作
- html - 使 flexbox 容器可垂直滚动
- c# - LINQ 方法语法包括 4 层深度
- angular - 使用输入表单Angular更新服务变量?
- apache - 如何在 shell 中重启谷歌云服务?
- python-3.x - 使用 Beautiful Soup 在 div 标签下提取“类”的值
- python - 我的单层感知器收敛于 OR 数据集,但不收敛于 AND 数据集
- ruby - 在 ruby sinatra 控制器中打印任何变量
- c# - 如何写入单独的 .csv 文件列?