Falsche Pfadangaben zu Vorlagen in Word-Dateien korrigieren

Das Problem von Pfadangaben in Word Dokumentenvorlagen

In Unternehmen wird oft eine gemeinsame Sammlung von Dokumentenvorlagen, die auf einem Server liegt, genutzt. Erzeugt man Dokumente mit Microsoft Word auf Basis einer solchen Vorlage, so wird im Word-Dokument auch der Pfad zu dieser Vorlage gespeichert. So weit, so gut – so problematisch.

Ändert sich nämlich der Pfad zum Vorlagenverzeichnis, wird die Sache unangenehm. Insbesondere die Änderung des Server-Namens ist problematisch. Zum besseren Verständnis ein Beispiel:

  • Alter Pfad zu den Vorlagen: \\alter-server\share\templates\
  • Neuer Pfad zu den Vorlagen: \\neuer-server\share\templates\
  • Der alte Server existiert nicht mehr.

Öffnet man nun ein Word-Dokument, das mit einer Vorlage vom alten Server erzeugt wurde, versucht Word die Vorlage von dort zu laden. Da der Server aber gar nicht mehr existiert, versucht Word das so lange, bis es in einen Timeout läuft. Und das kann leider gefühlt sehr, sehr lange dauern.

Genau dieses Fall hatten wir in unserem SIS-Team (Systemintegration and Services) bereits einmal. Ein Server bekam durch eine Umstellung eine andere IP-Adresse. Leider war in der Vergangenheit der Fehler gemacht worden, in den Gruppenrichtlinien den Pfad zu den Arbeitsgruppenvorlagen nicht mit dem DNS-Namen des Servers, sondern mit seiner IP-Adresse anzugeben. Also statt \\mein-server\datashare\Vorlagen war \\10.0.0.10\datashare\Vorlagen in den Gruppenrichtlinien hinterlegt. Ein weiteres Beispiel dafür, besser DNS-Namen anstatt IP-Adressen zu verwenden. Zwar kann über den Registry-Schlüssel HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Word\Options\UseTimeoutForAttachedTemplateLoad das Timeout geändert werden, dies ist aber nur Symptombehandlung und löst nicht das eigentliche Problem.

Knapp daneben ist auch vorbei

Die Lösung ist naheliegend. In den betroffenen Dokumenten muss nur der Pfad zur Dokumentenvorlage geändert werden. Das kann man manuell tun, also Dokument für Dokument. Wenn man nun aber ein paar hundert Dokumente zu korrigieren hat, funktioniert das nicht mehr in einer vertretbaren Zeit.

Man benötigt also ein Tool, dass die Änderungen automatisch an einer großen Anzahl von Word-Dateien vornimmt. Wir haben im Netz nach solchen Tools gesucht und auch etliche solcher Lösungen gefunden. Diese haben aber fast alle Folgendes gemein:

  • sie basieren auf VBA und laufen innerhalb von Word oder Excel,
  • sie sind langsam,
  • sie verarbeiten keine Verzeichnisbäume,
  • sie geben keine vernünftigen Fehlermeldungen aus,
  • sie können nicht adäquat von der Kommandozeile genutzt werden.

Unsere Lösung

WTCWord Template Corrector (WTC) - Korrigieren von Pfadangaben der Word-VorlagenDa wir uns sicher waren, dass das beheben auch besser geht, haben wir eine kleines Kommandozeilentool namens WTC, den Word Template Corrector entwickelt. Und der macht das anders, nämlich schneller und komfortabler. Das Tool besitzt allerdings eine Einschränkung: WTC funktioniert nur für Dokumente im Format Office Open XML, das mit Office 2003 eingeführt wurde. Die gebräuchlichen Dateiendungen sind .docx, dotx, docm und dotm. Diese Dateien sind im Grunde eine Sammlung von XML-Dateien, die in ein ZIP-Archiv verpackt sind. Man kann also die Dokumente ganz einfach mit Programmen wie 7Zip öffnen oder entpacken.

So arbeitet WTC

Das Prinzip ist simpel. Datei für Datei wird entpackt und dann wird in der Einstellungsdatei word/_rels/settings.xml.rels die alte und unerwünschte Pfadangabe zur Vorlage durch die neue, korrekte ersetzt. Danach wird alles wieder eingepackt und die Originaldatei ersetzt. Standardmäßig wird dabei eine Sicherungskopie des Originals mit der Endung .bak erzeugt.

Screenshot aus WTC - Word Template Corrector - Korrigieren von Pfadangaben der Word-Vorlagen

Screenshot aus WTC – Word Template Corrector

Das Tool arbeitet sich durch ganze Verzeichnisbäume und hat einen Testmode (Dry-Run), mit dem man ermitteln kann, welche und wie viele Dateien denn überhaupt betroffen sind, ohne Änderungen an den Dokumenten vorzunehmen. Und wenn es mal zu Problemen kommt, dann erhalten wir auch brauchbare Fehlermeldungen.

WTC ist Open Source

Wir haben WTC auf GitHub.com veröffentlicht. Neben dem Quellcode findet sich dort auch immer ein aktuelles Binary.

Anregungen und Pull Requests sind herzlich willkommen.