2014-11-10 9 views
0

수십 개의 Visio 드로잉을 PDF로 변환해야합니다. 이 문서를 마우스 오른쪽 버튼으로 클릭하고 인쇄를 눌러도 인쇄 할 수있는 모든 문서에 대한 확인 인쇄 상자가 나타납니다. 폴더에있는 모든 문서를 기본 프린터 (PDF)로 인쇄하는 데 다음 코드를 사용하는 방법에 대해 생각했지만 확인 메시지가 표시됩니다. 누구든지 수동으로 매번 확인하지 않아도 코드를 변경하는 방법을 알고 있습니까?Visio Visio 확인 VBScript를 사용하여 확인 확인

set shApp = CreateObject("shell.application") 
currentPath = CreateObject("Scripting.FileSystemObject").GetAbsolutePathName(".") 
set shFolder = shApp.NameSpace(currentPath) 
set files = shFolder.Items() 
for each files in files 

if files.name <> Wscript.ScriptName then 
    'msgbox("printing "&files.name) 
    files.InvokeVerbEx ("Print") 
end if 
next 

답변

1

직접 Visio를 사용할 수 및 프로그래밍 "PDF로 저장"을 수행

set shApp = CreateObject("shell.application") 

Set visioApp = CreateObject("Visio.InvisibleApp") ' start invisible Visio app 

currentPath = CreateObject("Scripting.FileSystemObject").GetAbsolutePathName(".") 
set shFolder = shApp.NameSpace(currentPath) 
set files = shFolder.Items() 
for each files in files 

if files.name <> Wscript.ScriptName then 
    ' msgbox("printing "&files.name) 
    ' files.InvokeVerbEx ("Print") 

    set doc = visioApp.Documents.OpenEx(files.path, 1+2+128+256) ' name, readonly + copy + macro disabled + no workspace 
    doc.ExportAsFixedFormat 1, files.path & ".pdf", 1, 0 ' pdf, filename, printer quality, print all 
    doc.Close 

end if 
next 

visioApp.Quit 

는 니콜라이의 대답은 나중에 Visio 2007의 이상을 사용하는 사람들을 위해 msdn

+0

감사하지만 불행히도 나는의 Visio 2002을 사용하는 내 회사로 그 방법을 사용 couldnt는 그것을 일부러 그것을 지원하십시오. 응용 프로그램에서 기본 PDF 프린터로 인쇄 할 수 있었지만 멋지게 나에게 확인해달라고 부탁 한 나에게 준 것에서부터. 보이지 않는 앱이 너무 좋아서 나타나지 않습니다. set doc = visioapp.documents.open (files.path) doc.Print. 감사합니다 – ToniHopkins

+0

또한 Visio에서 PDF로 인쇄 할 때마다 파일 이름을 변경하는 방법에 대해 알고 있습니까? Visio-filename.pdf와 같은 디렉터리에 파일이 나타납니다. 모든 파일을 반복하는 별도의 스크립트가 있습니다. 이것을 제거하면 처음부터 filename.pdf로 방금 생성 한 것이 좋을까요? – ToniHopkins

+0

이것이 기본 파일 이름이라고 생각합니다. (즉, 인쇄 된 파일의 이름은 원본 파일의 이름으로 지정됩니다). 어쩌면 그것은 "pdf 프린터"설정에서 어떻게 든 구성 될 수 있습니다. 확실하지 않습니다. 당신이 이미 음성으로 들었던 것 외에는 아무 생각이 들지 않습니다. - 스크립트를 사용하여 포스트 프로세스 파일을 만들었습니다. :) – Nikolay

0

에서 ExportAsFixedFormat에 대한 자세한 내용을 참조하십시오 최상의 솔루션. 당신의 다음 2007 아래에 다음과 같은 뜻 루프 파일을 아무것도를 사용하여 확인하지 않고 각각의 인쇄 나 같은 경우 : 그것에 대해

set shApp = CreateObject("shell.application") 
Set visioApp = CreateObject("Visio.InvisibleApp") ' start invisible Visio app 

currentPath = CreateObject("Scripting.FileSystemObject").GetAbsolutePathName(".") 
set shFolder = shApp.NameSpace(currentPath) 
set files = shFolder.Items() 
for each files in files 

    if files.name <> Wscript.ScriptName then 

set doc = visioapp.documents.open(files.path) 
doc.Printer = "\\bprintpdf1\PDF4Printing" 
doc.Print 
     doc.Close 

    end if 
next 

visioApp.Quit