我一直在努力使用MOSS 2007將docx文件轉換爲pdf文件的文檔轉換功能.SPFile.Convert()調用正在ItemAdded事件中進行,並且ItemFileConverted事件也正常觸發。事件似乎工作正常,但轉換後的SPFile實例的IsConvertedFile和SourceLeafName屬性並不總是由轉換過程設置的。這正是我試圖用來確定是否應該調用SPFile.Convert。如何準確確定SPFile實例是否爲轉換文件?
在挖掘SPFile IsConvertedFile,GeneratingConverterId和SourceLeafName屬性的代碼時,它似乎基於SPFile.Properties「vti_dttransformerid」和「vti_dtparentleafname」。問題是,只要我在ISPConversionProcessor.PostProcess()實現中有代碼,我希望對文件進行一些後處理,就不會一致地設置這兩個屬性。如果PostProcess方法中沒有代碼(只有runDefaultPostProcessing = true;語句),則屬性的設置更加一致。
我在這裏有一些額外的細節in a Wiki page關於發生了什麼,但使用.NET Reflector來確定這些字段從OWSTIMER.EXE的磚牆更新(我可以找到屬性的所有讀取,但即使是HtmlLauncher和LoadBalancer服務也沒有提及這些屬性)。
是否有人完成了一個完整的文檔轉換implmentation併成功使用了SPFile.IsConvertedFile和SPFile.SourceLeafName屬性?
謝謝亞歷克斯。最終,這是我最終做的。屬性存儲一個值,可以讓我確定轉換後的狀態。 – 2009-04-28 12:52:59