2011-10-21 41 views
1

打印到微软的文档图像作家,当我们有一个Oracle BPM10克活动是:禁止打印对话框从Oracle BPM10克

  1. 读取的制袋保护的Word文档模板。
  2. 将数据合并到字段中。
  3. 将合并/填充副本保存到文件系统。
  4. 将文档打印到选定的预定义打印机或打印到默认打印机。

所有这些在打印到“真实”打印机时工作正常。但是,现在需要将Word文档输出到TIFF。尝试使用“Microsoft Document Image Writer”作为打印机选择之一不能按预期工作。通常,直接从Word(或任何其他应用程序)打印到Microsoft Document Image Writer时,系统会提示您输入保存结果文件的位置。尝试从BPM 10g中的此特定活动进行打印时,不会发生此提示。

理想情况下,我们实际上喜欢绕过对话框并直接输出TIFF到文件系统。但是,我还没有找到一种方法来以编程方式进行控制。也就是说,能够在代码中指定目标文件名。现在,我只是想输出到Microsoft Document Image Writer,以确保它可以正常工作。

因此,底线问题(S)是/是:

  • 可以这样做?即,打印到Microsoft Document Image Writer
  • 如果是,是否可以禁止文件位置对话框?
  • 如何?

回答

0

谢谢domke咨询。

经过更多搜索,我发现这个forum post on MSDN

添加这些注册表项,以抑制该对话框并抑制生成后输出似乎这样的伎俩:

HKEY_CURRENT_USER \软件\微软\办公室\ 12。0 \ MODI \ MDI作家

  • PrivateFlags = 17(十进制)
  • OpenInMODI = 0(十进制)

对于我们来说,这似乎正常工作,如果我们调用printOut()法以下相关参数(为简洁起见,此处省略其他参数):

document.printOut(outputFileName : "C:\\temp\\fileName.tif", printToFile : true); 
1

你对自动化Word的方式一无所知。 在Word VBA,您可以使用该样本立即打印出来的活动文档,而不显示打印对话框:

Public Sub PrintToXPS() 
'Presume that Microsoft XPS Document Writer was already 
'set up as ActivePrinter 
Dim strFilePath As String  
strFilePath = "C:\temp\helloworld.xps"  
ActiveDocument.PrintOut Background:=False, outputfilename:=strFilePath 
End Sub 

有没有需要使用打印对话框来代替。但是,如果要通过对话框对象进行操作,可以在Word中使用Word.Dialog类型的变量进行操作,并提供必要的参数,例如,

Dim dlgFilePrint As Word.Dialog 
Set dlgFilePrint = Application.Dialogs(wdDialogFilePrint) 
dlgFilePrint.Update 
dlgFilePrint.PrToFileName = strFilePath 
dlgFilePrint.printtofile = True 
'add other parameters as needed ... 
'lock up parameter names in Word VBA Online Help using "WdWordDialog-Enumeration" 
'as key word 
dlgFilePrint.Execute 

我在这里用XPS打印机做了什么,你当然也可以用其他任何打印机。

+0

这是通过Oracle提供的COMBridge服务在BPM活动中执行的;它是COM组件(在本例中为Word)和BPM流程代码之间的适配器层。 我不知道如果我可以在那里得到一个对话框对象的引用,但我想知道这是否可以编码为模板本身内的宏;我可能能够从BPM中执行一个宏。我必须尝试一下。 – PattMauler

+0

我对这个COMBridge服务一无所知,但我想它可以让你通过COM与另一个应用程序通信。这通常意味着您可以调用其方法或设置其属性,如在Windows脚本主机或PowerShell脚本程序中 - 您只需要现在的方法名称,因为Intellisense通常不可用。最佳实践是预先宏观并重新使用代码。 - 向模板添加代码肯定会工作(我经常这样做),但是添加另一层依赖关系可能难以在生产中支持。 –