【发布时间】:2016-07-28 13:56:57
【问题描述】:
我需要打印一个两页的 PDF。第 1 页需要用于信封,然后第 2 页需要像平常一样打印普通纸。它可以在两个单独的 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
【问题讨论】:
-
我认为这可能是特定于打印机的 - 如果您有打印机的 ppd 文件,您可以检查它并检查设置在后记中的代码以选择信封托盘
标签: vb.net pdf printing ghostscript