2013-08-02 21 views
0

下面的VBA程序能很好地打印Word文檔我可以使用CreateObject使用vba打印.tif文檔嗎?如果不是,什麼?

 If sHlink <> "" Then 
      Set OfficeObject = CreateObject("Word.Application") 
      OfficeObject.Documents.Open sHlink 
      OfficeObject.PrintOut Background:=False 
      OfficeObject.Quit 
      Set OfficeObject = Nothing 
     End If 

,但我需要打印的文件。TIF什麼。它們默認情況下通過Microsoft照片查看器打開。有沒有類似的東西可以稱爲MS Photo Viewer,或者失敗了,Acrobat?也許用Acrobat可以使用某種命令行? 謝謝

+0

他們是單頁TIF文件還是他們可能包含多個頁面?如果是單個頁面,則相當簡單,並且類似於將PowerPoint自動插入TIF完整頁面尺寸然後打印。 –

+0

嘗試使用「print」作爲動詞的ShellExecute; http://ss64.com/vb/shellexecute.html(或者可以用win32 API完成) –

回答

0

我發現,打印使用圖片編輯器,以前的Office安裝這個shell命令:

Shell """C:\Program Files\Common Files\Microsoft Shared\PhotoEd\photoed.exe"" -p h:\misc\MyPicture.tif" 

我認爲它可以適應使用當前圖片管理器來打印 - 我敢打賭,它使用同樣的-p開關。由於某些原因,這似乎被命名爲「OIS.EXE」。

+0

Andy G,我有類似於VBA的東西: dblRetVal = Shell(sDOSCMD,vbNormalFocus) 其中sDOSCMD是「C:\ Program Files(x86)\ Microsoft Office \ Office14 \ OIS.EXE」-p'G:\ CITIZEN \ MASTER \ 1)SETUP \ DEPT_28 \ Process Drawings \ EST1107REVSMETHODPRINT.tif',並且dblRetVal返回一個non-零值(3712)。 但我從打印機沒有打印,有什麼建議嗎? – plh

+0

您應該首先從命令行獲取要執行的語句。然後,我發佈的示例代碼表明應用程序的路徑需要用引號括起來(通過雙引號),因爲它包含空格。您可能需要對文檔路徑執行相同的操作,因爲我不確定這些撇號會被正確解析。 –

+0

謝謝。能夠顯示但不能打印。我得到了它的顯示與sDOSCMD設置爲 C:\ Program Files文件(x86)的\的Microsoft Office \ OFFICE14 \ OIS.EXE 「G:\ CITIZEN \ MASTER \ EST.tif」 注意,命令行沒有加引號但文件名是。 然而,-p不能是打印開關,因爲把它放在之間,如: C:\ Program Files文件(x86)的\的Microsoft Office \ OFFICE14 \ OIS.EXE -p「G:\ CITIZEN \ MASTER \ EST.tif 「 或結尾,如: C:\ Program Files文件(x86)的\的Microsoft Office \ OFFICE14 \ OIS.EXE 」G:\ CITIZEN \ MASTER \ EST.tif「 -p 既不其中之一導致了打印。 – plh

相關問題