2012-02-28 28 views
2

PDF文書を印刷しようとしているときにAdobe ReaderとFoxIt Readerの両方で問題が発生しています。両方の問題は異なっていますが、いずれかの問題を解決することで問題を解決できます。VB.Net FoxIt ReaderまたはAdobe Readerを使用してPDFを印刷する

次のコードを使用して印刷しようとするとAdobe 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で「このアプリケーションでは指定したファイルにアプリケーションが関連付けられていません」というエラーがスローされます。

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() 

上記のコードでは、変数を二重引用符で囲んでみましたが、それも機能しませんでした。

この問題に関するお手伝いをさせていただきます。

EDITはまた、私は私がネットワークの経路を介して共有プリンタやPDF(\\サーバー\ファイルを使用しようとしていますので、プリンタとPDFファイルの両方がサーバー上に配置されていることを言うのを忘れていました。 PDF)。

答えて

2

私は、彼らが、印刷にはAdobe Reader/Acrobatの使用PDFsharpに何をすべきかをご覧になることをお勧め: http://pdfsharp.codeplex.com/SourceControl/changeset/view/51421#707803

私は、彼らが彼らのコメントのデフォルトのプリンタの問題を回避する方法を発見したと信じています:

// 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. 
関連する問題