20. Sep 2021
Lesedauer 3 Min.
Hex, Hex
Downloads
Von Hex-Editoren und der Aufdeckung verborgener Bilder in Word-Dateien.

Es liegt in der Natur des Redakteurs, sich mit Texten auseinanderzusetzen: Der Redakteur redigiert, bereitet also Texte sprachlich und inhaltlich auf, damit sie gut zu lesen sind und in einer Zeitung, Zeitschrift oder online erscheinen können. Das bedeutet wiederum, dass Texte aus unterschiedlichen Quellen in verschiedensten Formaten auf den Redakteur einprasseln. Und das ist auch gut so. Die Autoren sollen sich komplett um den Inhalt eines Textes kümmern. Freilich kann ein Redakteur keine Wunder vollbringen: Aus einem schlechten Text wird nie ein wirklich guter.Doch der Mensch informiert sich nicht nur durch Text allein. Als Eyecatcher kommt Bildern eine wichtige Aufgabe zu. Aber auch zur Illustration sind Bilder unverzichtbar: Für Menschen als visuelles Wesen erschließen sich manche Zusammenhänge über ein Bild oft viel schneller.Langer Rede kurzer Sinn: Von Autoren kommen Word-Dokumente mit eingebauten Bildern, und diese sollen aus dem Dokument extrahiert werden, damit sie dem Publishing-System zugeführt werden können. DOCX ist ja nun ein ZIP-Archiv, in dem verschiedene Dateien verpackt sind – unter anderem auch die Bilder im Ordner word/media.Will man nun die Bilder herausholen, lässt sich das Dokument in ein ZIP-Programm laden und damit die Bilder extrahieren. Oder Sie verwenden SharpCompress [1]. Diese .NET-Bibliothek packt und verpackt Dateien in Archive der Formate Zip, Tar, Tar.GZip, TarBZip2, Tar.LZip und GZip. Damit aber nicht genug, kann sie Rar-, 7Zip- und Tar.XZ-Archive dekomprimieren. Mit der Bibliothek haben Sie also eine gut gefüllte Werkzeugkiste für komprimierte Archive.Lange Rede noch kürzerer Sinn: Mit dem folgenden Code holen Sie alle Bilder aus einem Word-Dokument heraus und speichern sie im selben Verzeichnis. Dazu fügen Sie das Paket SharpCompress per NuGet dem Projekt hinzu.
<span class="hljs-keyword">using</span> SharpCompress.Archives;
<span class="hljs-keyword">using</span> SharpCompress.Common;
<span class="hljs-keyword">using</span> System;
<span class="hljs-keyword">using</span> System.Linq;
<span class="hljs-keyword">namespace</span> <span class="hljs-title">WordImages</span>
{
<span class="hljs-keyword">class</span> <span class="hljs-title">Program</span>
{
<span class="hljs-function"><span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title">Main</span>(<span class="hljs-params"><span class="hljs-keyword">string</span>[] args</span>)</span>
<span class="hljs-function"> </span>{
<span class="hljs-keyword">using</span> (<span class="hljs-keyword">var</span> archive = SharpCompress.Archives.Zip
.ZipArchive.Open(<span class="hljs-string">"WordDocument.docx"</span>))
{
<span class="hljs-keyword">foreach</span> (<span class="hljs-keyword">var</span> entry <span class="hljs-keyword">in</span> archive.Entries
.Where(entry => !entry.IsDirectory)
.Where(entry => entry.Key.StartsWith(
<span class="hljs-string">"word/media/"</span>)))
{
Console.WriteLine(entry.Key);
entry.WriteToDirectory(<span class="hljs-string">"."</span>, <span class="hljs-keyword">new</span> ExtractionOptions()
{
ExtractFullPath = <span class="hljs-literal">false</span>,
Overwrite = <span class="hljs-literal">true</span>
});
}
}
}
}
}
[1] SharpCompress, www.dotnetpro.de/SL2110Downloads1
Schwerpunkt Hex-Editoren
<b>HxD</b><br/>HxD ist ein sorgfältig gestalteter und schneller Hex-Editor der neben dem direkten Bearbeiten von Datenträgern und dem Verändern des Arbeitsspeichers (RAM) auch Dateien beliebiger Größe verarbeiten kann. Die leicht zu bedienende Oberfläche bietet Funktionen wie Suchen und Ersetzen, Export in verschiedene Dateiformate, Prüfsummen/Digests, Einfügen von Byte-Mustern, einen Datei-Reißwolf, Zusammenfügen oder Aufspalten von Dateien, Statistiken und vieles mehr.<br/><a href="https://mh-nexus.de/de/hxd/" rel="noopener" target="_blank">https://mh-nexus.de/de/hxd/</a>
Buildalyzer
<b>NGitLab</b><br/>NGitLab ist eine .NET-REST-Client-Implementierung des GitLab-API ohne externe Abhängigkeiten.<br/><a href="https://github.com/ubisoft/NGitLab" rel="noopener" target="_blank">https://github.com/ubisoft/NGitLab</a>