2011-06-28 76 views
0

Adob​​e PDF沒有將寫爲OLE屬性的摘要信息設置爲根存儲中名爲「\ 005SummaryInformation」的流。它使用微軟在XP中停止支持的另一種方法。Windows資源管理器列視圖不顯示摘要信息

使用DSOFile我已將摘要信息添加到PDF。這工作...或至少我assmume,以便關閉和打開文件後摘要信息是可見的(使用DSOFile查看器不是Adobe)!

這是將摘要信息保存到PDF的代碼的簡化版本。請注意,這不適用於所有文檔,例如Office 2007文檔。我使用WindowsAPICodePack.dll來處理文檔,這是行不通的!

Dim oDocument As DSOFile.OleDocumentProperties = New DSOFile.OleDocumentProperties 
oDocument.Open(FileName, False, DSOFile.dsoFileOpenOptions.dsoOptionOpenReadOnlyIfNoWriteAccess) 
Dim oSummProps As DSOFile.SummaryProperties = oDocument.SummaryProperties 
If (NewData <> oSummProps.Title) Then 
    oSummProps.Title = NewData 
End If 
oDocument.Save() 
oDocument.Close() 

我的問題是PDF摘要信息在Windows資源管理器列中不可見。我希望看到的信息是System.Keywords(標籤)和System.Title。

回答

1

PDF文件不是結構化的存儲文件,因此它們不能包含\ 005SummaryInformation流。我不知道上面的代碼是如何工作的,但是當它可能在PDF文件中插入一個\ 005SummaryInformation流時,我確信它會損壞PDF文件。

+0

對於摘要信息Office產品使用_OLE屬性如[MS-OLEPS]指定的設置,GUID FMTID_SummaryInformation在DOC流「\ 005SummaryInformation」 ._ PDF文件可以具有元數據「文檔信息詞典」和「擴展元數據平臺(XMP)」。 使用DSOFile元數據已被添加到.PDF文檔的「某處」,儘管不符合Microsoft的要求。數據在某處,並沒有損壞.PDF。使用VB.Net我需要添加信息,以便Windows資源管理器使用摘要信息。 有沒有人知道** defintively **如果這可以成立? –

+2

如果您可以在某處下載文件以供下載,我可以查看它並準確告訴您已添加元數據的位置。如果在使用上述代碼處理文件後可以用Adobe Reader打開文件,並不意味着文件沒有損壞,Adobe Reader會自動修復許多錯誤。 Windows資源管理器不知道文檔信息詞典或XMP元數據的任何內容,PDF文件不支持OLE SummaryInformation流。一個可能的解決方案是爲Windows資源管理器編寫一個可處理PDF文件並從中提取元數據的插件。 – iPDFdev

相關問題