2016-03-27 7 views
0

Ich habe eine OPC-Datei. Es funktioniert gut. Jetzt versuche ich ein Thumbnail hinzuzufügen. Wenn diese Datei im Windows Explorer angezeigt wird oder zB als Anhang im Browser, wird mein Thumbnail angezeigt.Miniaturansicht einer OPC-Datei in Windows Explorer anzeigen

Ich versuchte

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

zu .rels Datei hinzuzufügen. Ich habe versucht, jpeg anstelle von png hinzuzufügen. Ich habe 32x32 und 64x64 Größen versucht.

[content_types] .xml:

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

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

Struktur meiner Datei:

  • _rels
    • .rels
  • thumbnail.png
  • andere Dateien
  • [content_types] .xml

Ein Auszeichnungs Beispiel OPC-Datei mit Thumbnail-Arbeiten und seine Struktur werde ich sehr geschätzt.

EDIT 2:

Ich habe es geschafft Vorschau anzuzeigen, wenn Erweiterung einer Datei ist 'xps'.

Antwort

0

Es gibt nichts mit dem OPC-Format zu tun. Windows hat seinen eigenen Weg, Symbole für jede Dateierweiterung zu zeichnen. Um ein bestimmtes Symbol für eine bestimmte Dateierweiterung zu erstellen, müssen Sie eine DLL erstellen, die die IThumbailProvider-Schnittstelle implementiert und registriert. Mehr Informationen here.

0

Sie können den xps-IThumbnailProvider für zip-Dateien verwenden, keine Notwendigkeit, eine eigene zu schreiben !!!

Fügen Sie das Bild, um zu Ihrer Zip-Datei:

Dateien keine BOM haben muss !!!

versuchen, bis Ihre Datei zeigt die Vorschau, wenn Sie es umbenennen, um 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 

Und dann Ihre Datei-Erweiterung in der Registrierung (ClassesRoot oder Current) hinzufügen:

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

Das ist alles ...

Verwandte Themen