私は、MOSS 2007 を使用して docx ファイルを pdf ファイルに変換するためのドキュメント変換機能に取り組んできました。 SPFile.Convert() 呼び出しは ItemAdded イベントで行われ、ItemFileConverted イベントも正常に発生します。イベンティングは正常に機能しているように見えますが、変換された SPFile インスタンスの IsConvertedFile および SourceLeafName プロパティは、変換プロセスによって常に設定されるとは限りません。これは、SPFile.Convert を呼び出す必要があるかどうかを判断するために使用しようとしていたものです。
SPFile IsConvertedFile、GeneratingConverterId、および SourceLeafName プロパティのコードを掘り下げると、これらは SPFile.Properties "vti_dttransformerid" および "vti_dtparentleafname" に基づいているようです。問題は、ISPConversionProcessor.PostProcess() 実装にファイルの後処理を行うコードがある場合は常に、これら 2 つのプロパティが一貫して設定されないことです。PostProcess メソッドにコードがない場合 (runDefaultPostProcessing = true; ステートメントのみ)、プロパティはより一貫して設定されます。
Wiki ページに何が起こっているかについての追加の詳細がありますが、.NET Reflector を使用して、これらのフィールドがどこで更新されたかを判断すると、OWSTIMER.EXE のレンガの壁にぶつかります (プロパティのすべての読み取りを見つけることができましたが、 HtmlLauncher および LoadBalancer サービスでさえ、これらのプロパティについて言及していませんでした)。
完全なドキュメント変換の実装を行い、SPFile.IsConvertedFile および SPFile.SourceLeafName プロパティを正常に使用した人はいますか?