【问题标题】:Can I use CreateObject to print a .tif document with vba? If not, what?我可以使用 CreateObject 通过 vba 打印 .tif 文档吗?如果不是,那是什么?
【发布时间】:2013-08-02 19:14:01
【问题描述】:

下面的 vba 例程可以很好地打印一个 word 文档

        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 照片查看器,或者不能调用 Acrobat?也许对于 Acrobat,我可以使用某种命令行吗? 谢谢你

【问题讨论】:

  • 它们是单页 TIF 文件还是可能包含多个页面?如果是单页,自动 PowerPoint 插入 TIF 完整幻灯片大小然后打印会相当简单且类似。
  • 尝试使用“print”作为动词的ShellExecute; ss64.com/vb/shellexecute.html(或者可以用win32 API完成)

标签: vba tiff acrobat createobject


【解决方案1】:

我发现了这个使用以前随 Office 安装的照片编辑器打印的 shell 命令:

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

我认为它可以适应使用当前的图片管理器进行打印 - 我敢打赌它使用相同的 -p 开关。出于某种原因,这似乎被命名为“OIS.EXE”。

【讨论】:

  • 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 返回一个非零值 (3712)。但是打印机没有打印出来,有什么建议吗?
  • 您应该首先从命令行获取要执行的语句。然后我发布的示例代码表明应用程序的路径需要用引号引起来(通过双引号括起来),因为它包含空格。您可能需要对文档路径执行相同操作,因为我不确定是否会正确解析撇号。
  • 谢谢。能显示但不能打印。我让它在 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 这些都没有打印出来。
  • 我的印象是图片管理器不支持命令行参数,Doh!我会进一步研究它。您是否安装了另一个可以打印 .tiffs 的应用程序?
  • 我正在考虑 .pdf 并使用 Acrobat 阅读器。我们处于流程的早期阶段,我可以告诉工程师,伙计们,您必须将它们存储为 .pdf 文件
猜你喜欢
  • 1970-01-01
  • 2018-04-18
  • 2017-09-29
  • 2011-07-27
  • 2013-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-20
相关资源
最近更新 更多