【问题标题】:VB.Net Printing a PDF using FoxIt Reader or Adobe ReaderVB.Net 使用 FoxIt Reader 或 Adob​​e Reader 打印 PDF
【发布时间】:2012-02-28 01:44:22
【问题描述】:

我在尝试打印 PDF 文档时遇到了 Adob​​e Reader 和 FoxIt Reader 的问题。这两个问题都不同,但任何一个问题的解决方案都可以让我解决我的问题。

我在尝试使用以下代码进行打印时遇到的问题是,它不会将其打印到我指定的网络打印机,而只会打印到默认打印机。

Dim AdobeReader As New Process
AdobeReader.StartInfo.CreateNoWindow = False
AdobeReader.StartInfo.Verb = "print"
AdobeReader.StartInfo.FileName = SQLdr("DocumentName") & ".pdf"
Select Case SQLdr("Priority")
    Case 1
        AdobeReader.StartInfo.Arguments = String.Format("/t {0} {1}", SQLdr("DocumentName") & ".pdf", printPriority1)
    Case 2
        AdobeReader.StartInfo.Arguments = String.Format("/t {0} {1}", SQLdr("DocumentName") & ".pdf", printPriority2)
    Case 3
        AdobeReader.StartInfo.Arguments = String.Format("/t {0} {1}", SQLdr("DocumentName") & ".pdf", printPriority3)
    Case 4
        AdobeReader.StartInfo.Arguments = String.Format("/t {0} {1}", SQLdr("DocumentName") & ".pdf", printPriority4)
    Case 5
        AdobeReader.StartInfo.Arguments = String.Format("/t {0} {1}", SQLdr("DocumentName") & ".pdf", printPriority5)
End Select

AdobeReader.Start()
AdobeReader.WaitForExit(10000)
AdobeReader.Close()

我也试过上面的代码,在文档名称和打印机名称两边加上双引号。

我在使用 FoxIt 时遇到的问题是,当我尝试使用以下代码进行打印时,它会在 FoxItReader.Start 上抛出此错误“No application is associated with the specified file for this operation”。

Dim FoxItReader As New Process
FoxItReader.StartInfo.CreateNoWindow = False
FoxItReader.StartInfo.Verb = "print"
FoxItReader.StartInfo.FileName = "C:\Program Files\Foxit Software\Foxit Reader\Foxit Reader.exe"
Select Case SQLdr("Priority")
    Case 1
        FoxItReader.StartInfo.Arguments = String.Format("/t {0} {1}", SQLdr("DocumentName") & ".pdf", printPriority1)
    Case 2
        FoxItReader.StartInfo.Arguments = String.Format("/t {0} {1}", SQLdr("DocumentName") & ".pdf", printPriority2)
    Case 3
        FoxItReader.StartInfo.Arguments = String.Format("/t {0} {1}", SQLdr("DocumentName") & ".pdf", printPriority3)
    Case 4
        FoxItReader.StartInfo.Arguments = String.Format("/t {0} {1}", SQLdr("DocumentName") & ".pdf", printPriority4)
    Case 5
        FoxItReader.StartInfo.Arguments = String.Format("/t {0} {1}", SQLdr("DocumentName") & ".pdf", printPriority5)
End Select

FoxItReader.Start()
FoxItReader.WaitForExit(10000)
FoxItReader.Close()

使用上面的代码,我也尝试在变量周围加上双引号,但这也没有用。

非常感谢您对此问题的任何帮助。

编辑

另外我忘了说打印机和 PDF 文件都位于服务器上,所以我试图通过网络路径 (\\SERVER\FILE.PDF) 使用共享打印机和 PDF。

【问题讨论】:

    标签: vb.net pdf process.start adobe-reader foxit


    【解决方案1】:

    我建议看看他们在PDFsharp 中使用 Adob​​e Reader / Acrobat 打印的内容: http://pdfsharp.codeplex.com/SourceControl/changeset/view/51421#707803

    我相信他们已经找到了解决 cmets 中默认打印机问题的方法:

    // AcroRd32.exe /t path printername drivername portname    Executes the reader and prints a file
    //                                                         while suppressing the Acrobat print
    //                                                         dialog box, then terminating the Reader.
    //
    // The four parameters of the /t option evaluate to strings.
    // printername     The name of the Printer.
    // drivername      Your printer drivers name i.e. whatever apperars in the Driver Used box when viewing printer properties.
    // portname        The printers port. portname cannot contain any "/" characters; if it does, output is routed to
    //                 the default port for that printer.
    

    【讨论】:

      猜你喜欢
      • 2019-06-21
      • 2018-01-09
      • 2014-03-10
      • 1970-01-01
      • 1970-01-01
      • 2014-09-12
      • 1970-01-01
      • 2012-03-09
      • 1970-01-01
      相关资源
      最近更新 更多