1

OracleBPM10gのアクティビティは次のとおりです。

  1. フォーム入力で保護されたWord文書テンプレートを読み取ります。
  2. データをフィールドにマージします。
  3. マージ/フィルされたコピーをファイルシステムに保存します。
  4. 選択した事前定義されたプリンター、またはデフォルトのプリンターにドキュメントを印刷します。

「実際の」プリンタに印刷する場合、これはすべて正常に機能します。ただし、Word文書をTIFFに出力する必要があります。プリンタの選択肢の1つとして「MicrosoftDocumentImageWriter」を使用しようとすると、期待どおりに機能しません。通常、Word(またはその他のアプリケーション)からMicrosoft Document Image Writerに直接印刷する場合、結果のファイルを保存する場所の入力を求められます。このプロンプトは、BPM10gでこの特定のアクティビティから印刷しようとした場合には発生しません。

理想的には、実際にはダイアログをバイパスして、TIFFをファイルシステムに直接出力したいと思います。ただし、これをプログラムで制御する方法は見つかりませんでした。つまり、コードで宛先ファイル名を指定できることです。現在、動作を確認するために、Microsoft DocumentImageWriterに出力を取得しようとしています。

したがって、最終的な質問は次のとおりです。

  • これはできますか?つまり、Microsoft DocumentImageWriterに印刷します
  • はいの場合、ファイルの場所のダイアログを非表示にできますか?
  • どのように?
4

2 に答える 2

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.Dialogタイプの変数を使用し、必要なパラメーターを指定してWordで実行できます。

   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プリンターを使用して行ったことは、もちろん他のプリンターでも実行できます。

于 2011-10-22T13:00:27.577 に答える
0

ありがとう、domkeコンサルティング。

さらに検索した後、MSDNでこのフォーラムの投稿を見つけました。

ダイアログボックスを抑制し、生成後の出力を抑制するためにこれらのレジストリエントリを追加すると、うまくいくように見えました。

HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 12.0 \ MODI \MDIWriterにあります

  • PrivateFlags = 17(10進数)
  • OpenInMODI = 0(10進数)

printOut()私たちの目的では、次の関連する引数(簡潔にするためにここでは他の引数は省略)を使用してメソッドを呼び出すと、これは正常に機能するようです。

document.printOut(outputFileName : "C:\\temp\\fileName.tif", printToFile : true);
于 2011-11-08T14:16:59.607 に答える