2016-03-27 12 views
0

私はOPCファイルを持っています。それはうまく動作します。今私はサムネイルを追加しようとしているので、このファイルがWindowsのエクスプローラに表示されている場合、またはブラウザの添付ファイルとして表示されている場合は、サムネイルが表示されます。WindowsエクスプローラでOPCファ​​イルのサムネイルを表示

私は.relsファイルに

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

を追加しようとしました。私はpngの代わりにjpegを追加しようとしました。私は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-ファイルのマークアップ例と、私は感謝します、それは構造です。

EDIT 2:

私は、ファイルの拡張子は、 'XPS' の場合、サムネイルを表示することができました。

答えて

0

OPC形式とは関係ありません。 Windowsでは、各ファイル拡張子のアイコンを描画する独自の方法があります。特定のファイル拡張子に対して特定のアイコンを描画させるには、dhllを作成する必要があります。これはIThumbnailProviderインターフェイスを実装して登録します。詳細情報here

0

zipファイルにはxps-IThumbnailProviderを使用できます。自分で作成する必要はありません。

あなたのzipファイルにサムネイルを追加します。

ファイルはBOMを持ってはいけません!

てみてくださいあなたは

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 

を.xpsそしてレジストリ(ClassesRootまたはCurrentUserに)にあなたのファイル拡張子を追加するために名前を変更した場合、あなたのファイルはサムネイルが表示されるまで:

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}" 

これはすべてです...

関連する問題