TIFF Image Printer as a replacement for Microsoft Office Document Imaging Printer
Need: You were using Microsoft Office Document Imaging (MODI) to convert files into tiff images. Starting with Office 2007 on 64-bit systems, this is no longer available.
Solution: While Microsoft has provided several workarounds to add MODI back in, some of these are involved, some only work on 32-bit computers, and the fact remains that Microsoft has stated that this feature is being deprecated. The solution is to find an alternative product that can replace it.
TIFF Image Printer 10.0 can easily replace the driver.
If you were printing to the Microsoft Office Document Imaging Printer before, now just print to the TIFF Image Printer 10.0 instead. TIFF Image Printer can be used from within VBA scripts or other methods of automation.
When automating from Office products like Word or Excel, the full path to the file name can be passed directly to the printer as part of the print command.
- If your code uses the name of the MODI printer driver, you can easily rename the TIFF Image Printer 10.0 printer to “Microsoft Office Document Imaging Printer” so that you don’t have to change any of your code or VBA scripts.
The default behaviour of the TIFF Image Printer 10.0 is to prompt for the file name each time you print, or if a file of the same name already exists. When using VBA scripts you may want to disable this as shown.
Word VBA Example:
Creates this document as a TIFF image named Converted.tif in the folder C:\Test.
Sub Create_TIFFImage() Dim sCurrentPrinter As String sCurrentPrinter = ActivePrinter ActivePrinter = "TIFF Image Printer 10.0" Application.PrintOut OutputFileName:="C:\Test\Converted.tif" ActivePrinter = sCurrentPrinter End Sub
Excel VBA Example:
Print the current selected sheet as a TIFF image using the value in cell A1 as the file name.
Sub Create_TIFFImage() Dim tiffImageName As String tiffImageName = "C:\Test\" & Range("A1").Value ActiveWindow.SelectedSheets.PrintOut _ ActivePrinter:="TIFF Image Printer 10.0", _ PrToFileName :=tiffImageName End Sub