Indexübernahme von DCF nach WinWord

Autor:
Ulf Caspers (UCaspers@Caspers.de)
Datum:
30.10.1998
Zusammenfassung:
Hier sind noch einmal alle Schritte erläutert, die für eine Übernahme von Index-Einträgen aus DCF/SGML-Dokumenten nach WinWord über HTML mit B2H notwendig sind.

Diese Seite ist eine Ergänzung zum Vortrag von DCF zu PDF.

Grobbeschreibung

Da es im HTML selbst keine Indizes gibt, können Indexeinträge im DCF/SGML nicht direkt in entsprechende HTML-Befehle umgesetzt werden. Tatsächlich kann B2H zwar einen Index erzeugen, dieser ist jedoch ein fester HTML-Text und wird beim Importieren nach WinWord auch wie einfacher Text behandelt. Inbesondere werden daher keine Seitenzahlen im Index erzeugt.

Die Idee ist, die Begriffe für den Index mit spezieller Kennzeichnung in den generierten Text einzustreuen. Die Indexbegriffe und die Kennzeichnungen werden beim WinWord-Import unverändert übernommen. Nach der Kennzeichnung kann dann im WinWord-Dokument gesucht und die zugehörigen Begriffe als Indexeinträge definiert werden. Anschließend werden die Begriffe mit ihrer Kennzeichnung wieder aus dem Dokument gelöscht.

Damit B2H die Indexbegriffe in den Text streuen kann, muss das Symbolfile vom B2H geändert werden, da B2H alle Indexeinträge selbst verarbeiten will. Das Ersetzen der Kennzeichnungen im importierten Word-Dokument kann mit Hilfe eines WinWord-Macros automatisiert werden.

Schritt für Schritt

Im einzelnen ist folgendes zu tun:

B2H-Symbolfile anpassen

In der B2h-Profildatei b2h.sym folgende Zeilen suchen

:TAG.  IH1 IH2 IH3 INDEX I1 I2 I3  IT=Y VAT=N ATT=Y SE=N V='=INTERNAL'
und wie folgt abändern:
*:TAG.  IH1 IH2 IH3 INDEX I1 I2 I3  IT=Y VAT=N ATT=Y SE=N V='=INTERNAL'
:TAG.  IH1 IH2 IH3 INDEX I1 I2 I3  IT=Y VAT=N ATT=Y SE=N V='#INDEX#&text#EINDEX#'

Dokument nach HTML konvertieren

Das Konvertieren selbst läuft wie immer ab. Per Parameter sollte jedoch die Indexerzeugung unterdrückt werden. Im fertigen HTML-Code sind nach der Konvertierung alle Indexeinträge im laufenden Text zusammen mit der Markierung enthalten.

HTML in WinWord importieren

Der HTML-Code wird zusammen mit den Index-Einträgen in WinWord importiert. Dabei werden die Indexeinträge mit ihren Markierungen wie normaler Text importiert.
Nach dem Import muss das Dokument als WinWord-Dokument gespeichert werden.

Umwandeln der Markierungen in WinWord-Felder

Die im Dokument enthaltenen Markierungen mit Indexeinträgen werden anschließend mit Hilfe eines VisualBasic-Macros in WinWord-Felder umgewandelt. Dieses Makro muss lediglich nach den Markierungen suchen, den zugehörigen Indexeintrag lesen und anschließend beides durch ein WinWord-Feld für einen Indexeintrag ersetzen.
Ein Beispiel für solch ein VisualBasic-Macro für Word97 können Sie von hier laden:
  1. Speichern Sie die Datei setindex.bas mit dem Browser auf Ihrer lokalen Festplatte, indem Sie mit der rechten Maustaste auf den folgenden Link klicken und Verknüpfung speichern unter... bzw. Ziel speichern unter... wählen.

    VisualBasic-Macro für WinWord: setindex.bas

  2. Misstrauische Zeitgenossen können den gespeicherten Code jetzt mit einem beliebigen Editor (notepad etc.) betrachten und feststellen, dass er virenfrei ist!
  3. Zum Importieren starten Sie WinWord und laden Sie das Dokument mit den Indexmarkierungen
  4. Drücken Sie ALT+F11, um den VisualBaisc-Editor zu öffnen.
  5. Wählen Sie im VisualBasic-Editor Datei/Datei importieren... und suchen Sie die gespeicherte Datei setindex.bas.
  6. Schließen Sie den VisualBasic-Editor
  7. Starten Sie anschließend über Extras/Makro/Makros... das Makro SetIndex.
  8. Das Makro endet mit einer Meldung über die gefundenen Indexeinträge.
Falls Sie in Ihrer Dokumentvorlage bereits einen Index haben, können Sie diesen jetzt aktualisieren, ansonsten können Sie über Einfügen/Index und Verzeichnisse... an der gewünschten Stellen im Dokument einen erstellen.
HomePage Vortrag "von DCF nach PDF" zurück zur Folie "Indexerstellung" E-Mail an den Autor UCaspers@Caspers.de

© 1998 DV-Beratung Ulf Caspers, Mannheim (Stand vom 30.10.1998)