Stichwortverzeichnisse als normaler Text (Anfänderfrage)

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Stichwortverzeichnisse als normaler Text (Anfänderfrage)

von MKmitta » Fr, 15.07.2005 14:45

Hallo zap,

es tut mir Leid das ich jetzt erst antworte.
Deine Antwort hat mich auf die richtige Spur gebracht, wird mir noch sehr hilfreich sein ohne diese wäre ich wahrscheinlich nicht weiter gekommen, auch wenn meine Frage doof erscheint. Ich sah den Wald vor lauter Bäumen nicht.

Danke
MKmitta

von zap » Sa, 09.07.2005 15:44

Hi MKmitta,

ich hab mal ein bisschen herumexperimentiert:

Code: Alles auswählen

sub Stichwoerter
  dim verzeichnisse
  dim verzeichnis_namen
  doc = ThisComponent
  verzeichnisse = doc.getDocumentIndexes
  verzeichnis_namen = verzeichnisse.getElementNames()
  
  ' alle Verzeichnisse anzeigen lassen
  msgbox Join(verzeichnis_namen, CHR$(10))
  
  ' ein Verzeichnis ist eine Sammlung von Absaetzen
  ' wird also durch ein Textintervall beschrieben
  ' mal den Hintergrund auf gruen setzen
  verzeichnisse.getByIndex(0).anchor.charbackcolor = RGB(0,255,0)
  
  Dim s as String
  Dim i as integer
  ' durch das Verzeichnis selber laufen. Leider sind die eintraege selber
  ' nur Text, a
  AbsatzEnum = verzeichnisse.getByIndex(0).Anchor.CreateEnumeration
  do while AbsatzEnum.hasmoreElements()
    Absatz = AbsatzEnum.nextElement()
    WortEnum = Absatz.CreateEnumeration()
    i = i+1
    s = s & "Absatz " & CStr(i) &"---------" & CHR$(10)
    do while WortEnum.hasmoreElements()
      Wort = WortEnum.nextElement()
      s = s & wort.TextPortionType & CHR$(10)
    loop
  loop
  msgbox s

  ' die verankerung im dokument. auf roten hintergrund setzen
  marken = verzeichnisse.getByIndex(0).documentindexmarks
  s = ""
  for i = 0 to UBound(marken)
  	s = s & marken(i).anchor.string & CHR$(10)
  	marken(i).anchor.charbackcolor = RGB(255,0,0)
  next i
  msgbox s
end sub
Wie man sieht, ist ein Verzeichnis ein einziger Textblock, also kann man nicht auf einzelne Worte zugreifen um Links aus ihnen zu machen. Die einzige Moeglichkeit, die mir einfällt, ist es das Verzeichnis nach dem aktualisieren zu parsen und für jedes wort, dass mit einem stichwort zusammenfaellt die Links auf die Anchor-Eigenschaft zu setzen.

Zap

Stichwortverzeichnisse als normaler Text (Anfänderfrage)

von MKmitta » Fr, 08.07.2005 20:27

Hallo,
ich möchte mit einem OpenOffice-Basic-Makro ein Stichwortverzeichnis erstellen, bei welchem die Seitenzahlen als Hyperlinks gestaltet sind die auf die betreffenden Textstellen verweisen. (Das so behandelte Dokument soll mittels extendedPDF von JDiSoftware in das PDF-Format konvertiert werden.)
Deshalb meine Frage:
Wie kann man den druckbaren Inhalt eines Stichwortverzeichnisses als normalen (formatierten) Text in ein Dokument einfügen? Oder wenn das nicht geht: Wie gelangt man an sämtliche Inhalte (auch Schlüsselwörter und die Eigenschaft ob es sich um einen Hauptindexeintrag handelt) von allen Index-Marken innerhalb eines Dokumentes.
Ein weiteres Problem währe zu den Ankern oder der Position der Index-Marken zu gelangen um Text-Cursor zu erzeugen.
Oder kommt dieses Feature mit OpenOffice 2.0?

Nach oben