1

私は、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 プロパティを正常に使用した人はいますか?

4

2 に答える 2

0

SharePoint 用の PDF コンバーターを作成しましたが、ドキュメント コンバーターの機能はニーズに合わず、柔軟性も十分ではなかったため、使用しませんでした。

無料の試用版をダウンロードできる場所にリンクするつもりなので、この返信がスパムとして破棄されるかどうかはわかりません. PDF コンバーター for SharePoint をダウンロードします。

今は少し汚れていますが、実際にあなたを助けたかもしれません;-)

于 2009-04-13T13:39:15.660 に答える
0

API を信頼できない場合は、IsConverted メタデータを SPListItem のプロパティ バッグに格納します。または、UI に表示したい場合は、リストに別のフィールドを追加します。これはすべて、イベント ハンドラーから正常に機能するはずです。

余分な作業を行うのは面倒ですが、SPFile では提供できなかった追加のメタデータを追加できる可能性があると思います。

于 2009-04-17T12:29:23.653 に答える