0
Sheet1
시트를 PDF 파일로 내보내고 인쇄 한 다음 코드를 사용하여 Adobe Reader를 닫습니다.PDF 파일 인쇄 및 Adobe Reader 종료
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA"
(ByVal hwnd As Long,
ByVal lpOperation As String,
ByVal lpFile As String,
ByVal lpParameters As String,
ByVal lpDirectory As String,
ByVal nShowCmd As Long) As Long
Public Function PrintThisDoc(Formname As Long, FileName As String)
On Error Resume Next
Dim X As Long
X = ShellExecute(Formname, "Print", FileName, 0&, 0&, 1)
End Function
Private Sub CommandButton1_Click()
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:="D:\Print.pdf"
PrintThis = PrintThisDoc(0, "D:\Print.pdf")
Application.Wait (Now + TimeSerial(0, 0, 10))
TerminateProcess
End Sub
내가 인쇄 주문이 어도비 리더를 종료하기 전에 프린터로 전송 될 때까지 10 초 동안 코드를 일시 중지 .wait
방법을 사용하십시오
이
내가 사용하고 코드입니다. 내가이 줄을 추가 할 때 는 단,TerminateProcess
서브 영향과 나는
Not found error
이 줄 내가
.wait
라인을 제거 할 때 내 파일이있는 한, 어도비 리더가 종료하지만 아무것도 인쇄되지 않습니다
Sub TerminateProcess()
Dim strTerminateThis As String
Dim objWMIcimv2 As Object
Dim objProcess As Object
Dim objList As Object
Dim intError As Integer
'Process to terminate
strTerminateThis = "AcroRd32.exe"
'Connect to CIMV2 Namespace
Set objWMIcimv2 = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
'Find the process to terminate
Set objList = objWMIcimv2.ExecQuery("select * from win32_process where name='" & strTerminateThis & "'")
'Terminates a process and all of its threads.
For Each objProcess In objList
intError = objProcess.Terminate
Next
Set objWMIcimv2 = Nothing
Set objList = Nothing
Set objProcess = Nothing
End Sub
(intError = objProcess.Terminate
)
그래서 어떤 도움을 주시겠습니까 ??
유일한 제안은 처음에는 Adobe Reader에서 열지 않는 것입니다. 참고로, Reader를 실제로 열지 않고 상황에 맞는 메뉴에서 PDF를 인쇄 할 수 있습니다.이 방법의 사용법을 살펴 보는 것이 좋습니다 ... – Krease
이것은 shellexecute를 사용하여 파일을 처음 열 경우에도 발생합니다. u는 실제로 독자를 여는 일없이 컨텍스트 메뉴에서 PDF를 인쇄하여 무슨 뜻입니까? – user3286479
Reader가 설치된 Windows에서는 탐색기에서 PDF를 마우스 오른쪽 단추로 클릭하면 옵션 사이에 "인쇄"가 표시됩니다. 이 옵션을 선택하면 Reader를 열지 않고도 PDF가 인쇄됩니다. 리더를 처음부터 여는 것을 피하기 위해 비슷한 메커니즘을 사용할 수 있어야합니다. 이는 단지 아이디어 일 뿐이며 귀하의 상황에서 작동하지 않을 수도 있음을 명심하십시오. – Krease