2016-03-27 76 views
0

我有一個OPC-文件。它工作正常。現在我正在嘗試添加縮略圖,因此當此文件顯示在Windows資源管理器中時,或者作爲瀏覽器中的附件顯示時,會顯示我的縮略圖。在Windows資源管理器中顯示OPC文件的縮略圖

我嘗試添加

<Relationship Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail" Target="/thumbnail.png" Id="RTN1" /> 

到的.rels文件。我試圖添加jpeg而不是png。我試過32x32和64x64的尺寸。

[CONTENT_TYPES] .XML:我的文件

<Default Extension="png" ContentType="image/png" /> 

<Default Extension="jpeg" ContentType="image/jpeg" />

結構:

  • _rels
    • 的.rels
  • thumbnail.png
  • 其他文件
  • [CONTENT_TYPES] .XML

工作OPC-文件,縮略圖的標記示例,它的結構將我大加讚賞。

編輯2:

我已經成功地顯示縮略圖時,文件的擴展名是「XPS」。

回答

0

與OPC格式無關。 Windows有自己的方式爲每個文件擴展名繪製圖標。要爲特定文件擴展名繪製特定圖標,您需要創建一個dll,該dll實現IThumbnailProvider接口並註冊它。更多信息here

0

您可以使用xps-IThumbnailProvider作爲zip文件,無需編寫自己的!

添加縮略圖到你的壓縮文件:

文件不得有BOM!

Windows Registry Editor Version 5.00 

[HKEY_CURRENT_USER\Software\Classes\.frax\shellex\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}] 
@="{44121072-A222-48f2-A58A-6D9AD51EBBE9}" 

[HKEY_CURRENT_USER\Software\Classes\.frax\shellex\{e357fccd-a995-4576-b01f-234630154e96}] 
@="{44121072-A222-48f2-A58A-6D9AD51EBBE9}" 

[HKEY_CURRENT_USER\Software\Classes\.frax\shellex\PropertyHandler] 
@="{45670FA8-ED97-4F44-BC93-305082590BFB}" 
:如果您重命名爲.XPS

Public WriteOnly Property Thumbnail As Image 
     Set(value As Image) 
      If value IsNot Nothing Then 
       Dim relsdir = Me.ZipArchivWriter.CreateEntry("_rels/", CompressionLevel.NoCompression) 
       Using rels = Me.ZipArchivWriter.CreateEntry("_rels/.rels", CompressionLevel.Fastest).Open 
        Using w As New StreamWriter(rels, FXENCODING) 
         w.WriteLine(XMLSTART) 
         w.WriteLine("<Relationships xmlns=""http://schemas.openxmlformats.org/package/2006/relationships"">") 
         w.WriteLine("<Relationship Target=""thumbnail.png"" Id=""R1"" Type=""http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail"" />") 
         w.WriteLine("</Relationships>") 
        End Using 
       End Using 
       Using ct = Me.ZipArchivWriter.CreateEntry("[Content_Types].xml", CompressionLevel.Fastest).Open 
        Using w As New StreamWriter(ct, FXENCODING) 
         w.WriteLine(XMLSTART) 
         w.WriteLine("<Types xmlns=""http://schemas.openxmlformats.org/package/2006/content-types"">") 
         w.WriteLine("<Default Extension=""rels"" ContentType=""application/vnd.openxmlformats-package.relationships+xml"" />") 
         w.WriteLine("<Default Extension=""PNG"" ContentType=""image/png"" />") 
         w.WriteLine("</Types>") 
        End Using 
       End Using 
       Using tn = Me.ZipArchivWriter.CreateEntry(FXTHUMBNAIL, CompressionLevel.NoCompression).Open 
        value.Save(tn, ImageFormat.Png) 
       End Using 
      End If 
     End Set 
    End Property 

然後你的文件擴展名添加到註冊表(ClassesRoot或CurrentUser)

嘗試,直到你的文件顯示縮略圖

就是這樣......

相關問題