Discussion:
Printing TIFF/JPG Attachment
(too old to reply)
Henk Pols
2009-03-19 22:18:47 UTC
Permalink
Does anyone have the vba code to print an Tiff/JPG attachment?

I am writng a code that will print a selected E-mail and all attached
documents. So far Iam able to print .doc and .xls attachments, I am missing
the correct code to print .tif and .jpg attachment.

Below is my code sofar:
Sub MyPrint()
Dim myOlApp As New Outlook.Application
Dim myOlExp As Outlook.Explorer
Dim myOlSel As Outlook.Selection
Dim Atmt As Attachment
Dim FileName As String
Dim PrtProg As String
Dim cmd As String
Dim x As Integer

Set myOlExp = myOlApp.ActiveExplorer
Set myOlSel = myOlExp.Selection
For x = 1 To myOlSel.Count
myOlSel.Item(x).PrintOut
For Each Atmt In myOlSel.Item(x).Attachments
FileName = "C:\Windows\Temp\" & Atmt.FileName
Atmt.SaveAsFile FileName
Select Case Right(FileName, 3)
Case "xls":
Dim xlApp As Excel.Application
Dim wb As Excel.Workbook
Set xlApp = New Excel.Application
Set wb = xlApp.Workbooks.Open(FileName)
wb.PrintOut
xlApp.Quit
Set wb = Nothing
Set xlApp = Nothing
Case "doc":
Dim wdApp As Word.Application
Dim doc As Word.Document
Set wdApp = New Word.Application
Set doc = wdApp.Documents.Open(FileName)
doc.PrintOut
wdApp.Quit False
Set doc = Nothing
Set wdApp = Nothing
Case "tiff":
Case "jpg":
Case "bmp":
Case "pdf": 'Via Arobat32.exe
Case "dwg": 'Via ACad32
Case Else:
End Select
Next Atmt
Next x
End Sub

Thanks in advance for any input on this issue.
Ken Slovak - [MVP - Outlook]
2009-03-20 15:07:16 UTC
Permalink
That would depend on what applications are installed that can handle those
file types, and whether or not those applications can be automated at all.

You could use a ShellExecute command with a "print" verb and the file path
to the image file to call whatever application is registered to handle that
file type, but that may or may not work. I know it works for BMP files where
MSPaint is the handler, other types might not work.

Something like this:

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

Const SW_HIDE = 0

Call ShellExecute(0,"print","c:\\test.bmp", _
vbNullString,vbNullString,SW_HIDE);
--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007.
Reminder Manager, Extended Reminders, Attachment Options.
http://www.slovaktech.com/products.htm
Post by Henk Pols
Does anyone have the vba code to print an Tiff/JPG attachment?
I am writng a code that will print a selected E-mail and all attached
documents. So far Iam able to print .doc and .xls attachments, I am missing
the correct code to print .tif and .jpg attachment.
Sub MyPrint()
Dim myOlApp As New Outlook.Application
Dim myOlExp As Outlook.Explorer
Dim myOlSel As Outlook.Selection
Dim Atmt As Attachment
Dim FileName As String
Dim PrtProg As String
Dim cmd As String
Dim x As Integer
Set myOlExp = myOlApp.ActiveExplorer
Set myOlSel = myOlExp.Selection
For x = 1 To myOlSel.Count
myOlSel.Item(x).PrintOut
For Each Atmt In myOlSel.Item(x).Attachments
FileName = "C:\Windows\Temp\" & Atmt.FileName
Atmt.SaveAsFile FileName
Select Case Right(FileName, 3)
Dim xlApp As Excel.Application
Dim wb As Excel.Workbook
Set xlApp = New Excel.Application
Set wb = xlApp.Workbooks.Open(FileName)
wb.PrintOut
xlApp.Quit
Set wb = Nothing
Set xlApp = Nothing
Dim wdApp As Word.Application
Dim doc As Word.Document
Set wdApp = New Word.Application
Set doc = wdApp.Documents.Open(FileName)
doc.PrintOut
wdApp.Quit False
Set doc = Nothing
Set wdApp = Nothing
Case "pdf": 'Via Arobat32.exe
Case "dwg": 'Via ACad32
End Select
Next Atmt
Next x
End Sub
Thanks in advance for any input on this issue.
Loading...