我需要打印两页PDF。第一页需要用于信封,然后第二页需要像正常一样打印一张普通纸。它可以在两个单独的PDF中,所以我的问题是:如何设置打印机使用Ghostscript使用信封?有没有人这样做过?我无法找到我需要的确切参数来完成此任务。我尝试了几种不同的东西,它仍然打印一张普通的纸张,不会使用容纳所有信封的信封托盘。看起来我需要更改为MediaType但我不知道参数。有任何想法吗?关于如何使用VB.NET/C#完成此操作的建议?继承我的代码,我没有任何参数处理信封。我的信封尺寸是9.5 x 4.15英寸。只是一个标准的信封。我已经尝试设置-sPAPERSIZE = c6,希望这足够接近触发信封托盘,但仍然没有运气。
Dim psInfo As New ProcessStartInfo()
psInfo.Arguments = String.Format(" -dPrinted -dNoCancel=true -dBATCH -dNOPAUSE -dNOSAFER -noquery -all -dNumCopies=1 -sDEVICE=mswinpr2 -sOutputFile=""%printer%{0}"" ""{1}""", printername, pdfFileName)
psInfo.FileName = "C:\Program Files\gs\gs9.15\bin\gswin64c.exe"
psInfo.RedirectStandardError = True
psInfo.RedirectStandardOutput = True
psInfo.UseShellExecute = False
Dim p As System.Diagnostics.Process = System.Diagnostics.Process.Start(psInfo)
Dim s As String = p.StandardError.ReadToEnd & p.StandardOutput.ReadToEnd
'System.Threading.Thread.Sleep(15000)
p.WaitForExit(15000)
If p.HasExited = False Then
p.Kill()
End If
答案 0 :(得分:0)
使用mswinpr2设备时,大多数Ghostscript命令行或多或少与物理打印机无关。各种命令行选项会影响Ghostscript PostScript解释器的行为,但只有特定于设备的参数才会影响设备。
mswinpr2设备不会更改设备的托盘/介质选择(除非您将其设置为在每次打印时查询用户的打印属性)。所以它改为使用打印机默认值。
要使其在信封媒体上打印,您需要将打印机默认设置设置为信封。