【问题标题】:Print on envelopes using Ghostscript with VB.NET Windows Form Application使用带有 VB.NET Windows 窗体应用程序的 Ghostscript 在信封上打印
【发布时间】: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


【解决方案1】:

在使用 mswinpr2 设备时,大部分 Ghostscript 命令行或多或少与物理打印机无关。各种命令行选项会影响 Ghostscript PostScript 解释器的行为,但只有特定于设备的参数会影响设备。

mswinpr2 设备不会更改设备的托盘/介质选择(除非您将其设置为在每次打印时向用户查询打印属性)。所以它使用打印机默认值。

为了让它在信封介质上打印,您需要将打印机默认设置设置为信封。

【讨论】:

  • 将其默认设置为信封的唯一问题是他们将其用于其他打印作业,而不仅仅是信封,因此我需要能够切换我需要使用哪个托盘。关于如何做到这一点的任何想法?我可以使用其他工具吗?
  • 您无法使用 mswinpr2 设备完成您所要求的操作,就这么简单,它从未打算成为无人值守的打印管理器。我毫不怀疑你可以修改设备来做你想做的事,这是一个简单的编码问题。备择方案 ?嗯,有 Adob​​e PDF 打印引擎,毫无疑问还有许多其他解决方案可以在 Windows 上打印 PDF 文件。
  • 我实际上将 ghostscript 与一个后台应用程序一起使用,该应用程序上带有一个每秒滴答的计时器。它多年来一直运行良好,因此一旦他们从我们的网页打印某些内容,它就会自动发送到他们的打印机。就像一个魅力,所以它可以做,而不是信封。
猜你喜欢
  • 2019-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-11
  • 1970-01-01
  • 2020-10-17
  • 1970-01-01
  • 2011-12-29
相关资源
最近更新 更多