2012-02-28 8 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() 

위 코드를 사용하면 변수 주위에 큰 따옴표를 넣으려고했으나 작동하지 않습니다.

이 문제에 대한 도움을 주시면 감사하겠습니다.

편집 또한 내가 네트워크 경로를 통해 공유 프린터 및 PDF (\\ 서버 \ 파일을 사용하려고 있도록 프린터와 PDF 파일 모두가 서버에있는 말을 잊어 버렸습니다. PDF).

답변

2

나는 그들이 인쇄 어도비 리더/애크로뱃을 사용 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. 
관련 문제