2009-04-08 83 views
1

我一直在努力使用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屬性?

回答

0

如果你不能信任的API,存儲在屬性包的SPListItem的IsConverted元數據。或者,如果您希望在用戶界面中顯示它,請在列表中添加另一個字段。這應該在事件處理程序中正常工作。

這很煩人做額外的工作,但我想可能會有額外的元數據,你可以添加哪些SPFile不會提供反正。

+0

謝謝亞歷克斯。最終,這是我最終做的。屬性存儲一個值,可以讓我確定轉換後的狀態。 – 2009-04-28 12:52:59

0

我已經爲SharePoint創建了一個PDF轉換器,但沒有使用文檔轉換器功能,因爲它不符合我們的需要並且不夠靈活。

不知道這個回覆是否會作爲垃圾郵件被拋出,因爲我現在要將您鏈接到您可以下載免費試用版的地方。 Download PDF Converter for SharePoint.

我覺得有點髒了,但我實際上可能幫助你;-)