Pdf 使用Ghost脚本打印时更改文档名称

Pdf 使用Ghost脚本打印时更改文档名称,pdf,printing,ghostscript,silent,ghostscript.net,Pdf,Printing,Ghostscript,Silent,Ghostscript.net,我需要将PDF文件打印到一些基于硬件的打印机和一些虚拟PDF打印机。我正在使用Ghostscript来完成这个任务,编程语言是C# 硬件打印机在每个文档之后打印一个PrintJob页面,其中包含一些信息,如文档的日期/时间和名称 虚拟打印机打印文档,但名称不同。(鬼脚本文件) 在使用Ghost脚本时,我无法更改/或设置文档名称,非常感谢您的帮助 using (GhostscriptProcessor processor = new GhostscriptProcessor())

我需要将PDF文件打印到一些基于硬件的打印机和一些虚拟PDF打印机。我正在使用Ghostscript来完成这个任务,编程语言是C#

硬件打印机在每个文档之后打印一个PrintJob页面,其中包含一些信息,如文档的日期/时间和名称

虚拟打印机打印文档,但名称不同。(鬼脚本文件)

在使用Ghost脚本时,我无法更改/或设置文档名称,非常感谢您的帮助

using (GhostscriptProcessor processor = new GhostscriptProcessor())
            {
                List<string> switches = new List<string>
            {
                //"-empty",
                "-dPrinted",
                "-dBATCH",
                "-dNOPAUSE",
                "-dNoCancel",
                "-dNOSAFER",
                "-dNumCopies=1",
                "-sDEVICE=mswinpr2",
                "-sDocumentName=" +  String.Format("\"{0}\"",Path.GetFileName(fileName)),
                "-sOutputFile=%printer%" + printerName ,
                "-f",
                fileName
            };
                processor.StartProcessing(switches.ToArray(), null);
            }
使用(GhostscriptProcessor=new GhostscriptProcessor())
{
列表开关=新列表
{
//“-空”,
“-朝鲜”,
“-dBATCH”,
“-dNOPAUSE”,
“-dNoCancel”,
“-dNOSAFER”,
“-dNumCopies=1”,
“-sDEVICE=mswinpr2”,
“-sDocumentName=“+String.Format(“{0}\”,Path.GetFileName(fileName)),
“-soutput文件=%printer%”+printerName,
“-f”,
文件名
};
processor.StartProcessing(switches.ToArray(),null);
}

“sDocumentName”开关不起作用,我仍然看到文档以默认名称打印——“Ghostscript Document”

您所说的“文档名称”到底是什么意思?你希望在哪里看到这个

没有
DocumentName
开关。有一个DocumentName参数。如果您阅读了第10.2节支持选项下的文档,它会清楚地说明

存在多个无法通过命令行设置的额外选项


这包括DocumentName,因此试图从命令行设置它显然不会有任何效果。文档接着描述了如何设置这些参数,因此如果您试图更改的是呈现给Windows后台处理程序的名称,那么您需要阅读该部分。

您所说的“文档名称”到底是什么意思?你希望在哪里看到这个

没有
DocumentName
开关。有一个DocumentName参数。如果您阅读了第10.2节支持选项下的文档,它会清楚地说明

存在多个无法通过命令行设置的额外选项


这包括DocumentName,因此试图从命令行设置它显然不会有任何效果。文档接着描述了如何设置这些参数,因此,如果您试图更改的是呈现给Windows后台处理程序的名称,则您需要阅读该部分。

正如我所提到的,物理打印机打印打印作业页,其中打印文档名称。我想把文件的名字印在那一页上。我提到的开关是“sDocumentName”,它不执行ghostscript中的工作开关begin-s或-d,这就是为什么我从DocumentName中删除了“s”,这是多余的。让我们更清楚一点;没有开关-sDocumentName。有一个DocumetnName参数(注意缺少-s),正如文档中所说明的那样,不能从命令行将其设置为开关。由于我不知道Windows在哪里找到“文档名称”(这是您在问题中提到的打印页面名称),我不知道这是否会满足您的要求,但值得一试。正如我提到的,物理打印机打印打印作业页面,其中打印文档名称。我想把文件的名字印在那一页上。我提到的开关是“sDocumentName”,它不执行ghostscript中的工作开关begin-s或-d,这就是为什么我从DocumentName中删除了“s”,这是多余的。让我们更清楚一点;没有开关-sDocumentName。有一个DocumetnName参数(注意缺少-s),正如文档中所说明的那样,不能从命令行将其设置为开关。由于我不知道Windows在哪里找到“文档名称”(这是您在提到打印页面时在问题中所说的名称),我不知道这是否符合您的要求,但值得一试。