2013-10-23 6 views
4

vbscript의 기본 프린터 또는 AcroRd32.exe가없는 명령 줄에서 pdf 문서를 인쇄 할 수 있습니까?acrobat.exe없이 VBscript 또는 명령 줄에서 PDF 인쇄

이상적으로 pdf를 프린터로 보내고 다른 프로그램은 필요 없다면 이상적입니다.

  • 또는 -

대화없이 개방하지 않고 Windows 작업 표시 줄에 표시하지 않고 PDF를 인쇄 할 수있는 제 3 자 .EXE 프로그램이 있습니까?

.exe는 독립 실행 형이어야하므로 (Windows 설치 프로세스가 필요하지 않음).

.exe를 다른 응용 프로그램에 배포 할 수있는 한 $ 100까지 지불 할 수 있습니다. 무료도 좋습니다.

나는 저를 곤혹스럽게합니다. 이것에 대해

답변

5

에서 파일을 같은 효과가 있습니다. 그러나 SumatraPDF은 원하는 것을 할 수 있어야합니다. 그것은 독립 실행 그리고 당신은 -print-to-default 옵션을 사용하여 기본 프린터로 PDF 파일을 인쇄 할 수 있습니다

filename = "C:\path\to\some.pdf" 

Set sh = CreateObject("WScript.Shell") 
sh.Run "sumatrapdf.exe -print-to-default """ & filename & """", 0, True 

은 자세한 내용은 manual를 참조하십시오.

+1

SumantraPDF를 시도했습니다. "이 파일을 인쇄 할 수 없습니다."라고 표시됩니다. Sumantra는 GUI에서 파일을 열고 인쇄 할 수 있습니다. 명령 줄에서 작동하지 않는 이유를 모르겠습니다. 나는 다른 출처에서 PDF를 지겨 웠고 둘 다 같은 오류를줍니다. Sumantra가 일했다면, 이것은 정확히 내가 원하는 것입니다. –

+0

시스템에 기본 프린터가 구성되어 있습니까? –

+1

안녕 이봐! 이것은 작동 중이다 !!! 좋은!! 파일의 전체 경로가 필요했습니다. 그게 사실이라면 '파일을 찾을 수 없습니다'라는 오류를 기대하고 있었다고 생각합니다. 이것은 위대합니다. –

1

방법은 :

Option Explicit 

Const FILE_TO_PRINT = "C:\full\path\to\your\file.pdf" 
Dim shl 
Dim fldr 
Dim files,file 

Set shl = CreateObject("Shell.Application") 
Set fldr = shl.Namespace("C:\full\path\to\your\") 
Set files = fldr.Items 


For Each file in files 
    If LCase(file.Path) = LCase(FILE_TO_PRINT) Then 
    file.InvokeVerbEx("Print") 
    End If 

Next 

Set shl = Nothing 
Set fldr = Nothing 
Set files = Nothing 
WScript.Quit 

Shell.Application 객체는 파일이있는 폴더를 필요로하고, 일정 FILE_TO_PRINT 파일의 전체 경로를 필요로한다.

InvokeVerbEx("Print")은 Foxit Reader 또는 Acrobat과 같은 관련 프로그램에서 파일을 열고 기본 프린터로 보냅니다.

그것은 같은에서 마우스 오른쪽 버튼을 클릭 탐색기와 클릭 '인쇄'나는 당신이 혼자의 VBScript와 PDF 파일을 인쇄 할 수 있다고 생각하지 않습니다

+0

그러면 어도비가 열리 며 문서를 인쇄하고 작업 표시 줄에 어도비를 열어 두십시오. 그런 다음 vbscript 내부에서 adobe를 닫을 수 있습니다. 이 접근법의 문제점은 adobe가 열리고 닫히면 전체 화면이 깜박입니다. –

+0

인쇄 옵션을 제공하는 일부 PDF 처리 프로그램이 시스템에 설치되어있는 경우에만 작동합니다. –

+0

화면이 깜빡 거리는 것에 대해 걱정이된다면이 작업을 백그라운드에서 완벽하게 수행 할 수있는 솔루션을 찾으려고한다고 가정합니다. – Jobbo