BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das OpenOffice Forum zu erhalten!

DANKE >><< DANKE

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des OpenOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als OO-SUPPORTER gekennzeichnet. 🤗

Keywords (& Titel & Author) auslesen und Ändern

Alles zur Programmierung im OpenOffice.org
Antworten
christophkirk
Beiträge: 14
Registriert: Do 16. Dez 2021, 12:53

Keywords (& Titel & Author) auslesen und Ändern

Beitrag von christophkirk » Sa 4. Feb 2023, 16:13

Hallo liebes Forum,

Zunächst DANKE an Euch. Ihr seid spitze!

(Kurzer Hinweis: Ich nutze LibreOffice und kann in der Arbeit keine AddInns herunterladen. Muss also entweder CODE kopieren und in ein Modul schreiben oder selber tippen :-). )

Folgendes Problem: Von vielen ODTs muss ich die META Daten (konkret die Dokumenten-Eigenschaften TITEL, KEYWORDS, und evtl. AUTHOR) komfortabel editieren können.

In MS-Excel-VBA habe ich dazu ein feines Programm geschrieben, in dem ich zunächst einen Ordner wählen kann, alle OFFICE-Dateien mit TITEL und KEYWORDS in die Tabelle geschrieben werden. Nun kann ich hier die TITEL und KEYWORDS in der Tabelle anpassen (oder eben nicht), drücke AKTUALISIEREN und er rattert alle Dateien durch und trägt die Änderungen ein. Klappt perfekt. Geht aber leider nur für Office Dateien.

Für ODTs habe ich bisher nur folgende "Mini-Lösung", die für den Anwender mittels ICONS in der Symbolleiste die Änderung in der geöffneten einen(!) Datei erleichtert. Also nicht sehr bequem, um viele Dateien anzupassen, aber evtl. komfortabler, weil man nicht erst in die Egenschaften des Dokument rein muss...


Code: Alles auswählen

' <<< 1 >>>
Sub Autor_Anpassen
        Dim TempString As String
        TempString = InputBox ("Derzeit eingetragener Autor des Dokuments: < " & ThisComponent.DocumentProperties.Author & " >   "& chr(13) & " " & chr(13) & "Sie können diesen nun ändern bzw. bei fehlendem Autor diesen neu eintragen:","Autor Eintragen bzw. Ändern", ThisComponent.DocumentProperties.Author)
        if TempString <> "" Then
                 ThisComponent.DocumentProperties.Author = TempString
                ThisComponent.store()
                MsgBox(" " & chr(13) &"  Der Autor des Dokuments lautet nun:        "& chr(13) & chr(13) &"  < " & ThisComponent.DocumentProperties.Author & " >   " & chr(13) & chr(13) & "  ",, "Änderungen erfolgreich")
        end if
End Sub

' <<< 2 >>>
Sub Titel_Anpassen
        Dim TempString As String
        TempString = InputBox ("Derzeit eingetragener Titel des Dokuments: < " & ThisComponent.DocumentProperties.Title & " >  "& chr(13) & " " & chr(13) & "Sie können diesen nun ändern bzw. bei fehlendem Titel diesen neu eintragen:","Titel Eintragen bzw. Ändern", ThisComponent.DocumentProperties.Title)
        if TempString <> "" Then
                ThisComponent.DocumentProperties.Title = TempString
                ThisComponent.store()
                MsgBox(" " & chr(13) &"  Der Titel des Dokuments lautet nun:        "& chr(13) & chr(13) &"  < " & ThisComponent.DocumentProperties.Title & " >   " & chr(13) & chr(13) & "  ",, "Änderungen erfolgreich")
        end if
End Sub
 
 ' <<< 3 >>>
Sub Schluesselwoerter_Anpassen
        Dim CurrentKeywords As String
        Dim NewKeywords As String
        Dim i as integer
        Dim TempArray As Object
        
        ' Den Array Keywords abfragen
        For i = LBound(thisComponent.getDocumentProperties().Keywords) To UBound(thisComponent.getDocumentProperties().Keywords)
       CurrentKeywords = CurrentKeywords & ", " & thisComponent.getDocumentProperties().Keywords(i)
    Next i
 
        NewKeywords = InputBox ("  Derzeit eingetragene Schlüsselwörter des Dokuments: < " &CurrentKeywords & " >  "& chr(13) & " " & chr(13) & "Sie können diese nun ändern bzw. neu eintragen:","Schlüsselwörter Eintragen bzw. Ändern")
        if NewKeywords <> "" Then
                
                ' HIER KRIEGE ICH LEIDER NIX REIN IN DIE VARIABLE "KEYWORDS"  :-(   :-(  Hier einige Versuche ein Feld des Arrays zu füllen
                ThisComponent.DocumentProperties.Keywords(1) = "New1"
                ThisComponent.DocumentProperties().Keywords(1) = "New1"
                ThisComponent.DocumentProperties(0).Keywords(1) = "New1"
                
                ' Speichern
                ThisComponent.store()
                
                ' Den Array Keywords abfragen
                CurrentKeywords = ""
                For i = LBound(thisComponent.getDocumentProperties().Keywords) To UBound(thisComponent.getDocumentProperties().Keywords)
                 CurrentKeywords = CurrentKeywords & " " & thisComponent.getDocumentProperties().Keywords(i)
         Next i
 
                MsgBox(" " & chr(13) & "  Die Schlüsselwörter des Dokuments lauten nun:        "& chr(13) & chr(13) &"  < " & CurrentKeywords & " >   " & chr(13) & chr(13) & "  ",, "Änderungen erfolgreich")
        'end if
End sub
Und hier nun meine Frage(n).

1. In meinem CODE klappt die Sub 1 und 2 gut, also das Anpassung vom Author und vom Titel. Sub 3 mit den Keywords NICHT :-(. Kann diese zwar auslesen, aber nicht wieder was rein schreiben. Bin zu doof. HABT IHR EINEN TIPP ?

2. Habt Ihr auch eine Idee für die "GROßE" Lösung? Also in CALC einen Ordner wählen, Dateien auslesen mit TITELund KEYWORDS, editieren und alle Dateien entsprechend aktualisieren? Geht das?

DANKE und VLG

F3K Total
Beiträge: 1007
Registriert: Mo 1. Aug 2011, 00:03

Re: Keywords (& Titel & Author) auslesen und Ändern

Beitrag von F3K Total » Sa 4. Feb 2023, 17:41

Versuch mal dies:

Code: Alles auswählen

Sub Schluesselwoerter_Anpassen
        Dim sKeywords As String
        Dim NewKeywords As String
        Dim i as integer
        Dim TempArray As Object
       ' Den Array Keywords abfragen
        aKeywords = thisComponent.getDocumentProperties.Keywords
        for i = 0 to uBound(aKeywords)
            sKeywords = Join(aKeywords ,",")
        next i
         NewKeywords = InputBox ("  Derzeit eingetragene Schlüsselwörter des Dokuments: < " &sKeywords & " >  "& chr(13) & " " & chr(13) & "Sie können diese nun ändern bzw. kommasepariert neu eintragen:" ,"Schlüsselwörter kommasepariert Eintragen bzw. Ändern",  sKeywords )
         aNewKeywords = Split(NewKeywords,",")
         redim aKeywords(Ubound(aNewKeywords))
         thisComponent.getDocumentProperties.Keywords = aNewKeywords
         ' Speichern
         ThisComponent.store()
         sKeywords =  Join(aNewKeywords ,",")
         MsgBox(" " & chr(13) & "  Die Schlüsselwörter des Dokuments lauten nun:        "& chr(13) & chr(13) &"  < " & sKeywords & " >   " & chr(13) & chr(13) & "  ",, "Änderungen erfolgreich")
        'end if
End sub
Gruß R
Windows 10: AOO, LO Linux Mint: AOO, LO

christophkirk
Beiträge: 14
Registriert: Do 16. Dez 2021, 12:53

Re: Keywords (& Titel & Author) auslesen und Ändern

Beitrag von christophkirk » Fr 10. Feb 2023, 09:03

DANKE... Probiere es gleich und gebe SOFORT Bescheid.

(Warum kriege ich keine EMail mehr, wenn mir jemand antwortet? Habe ich das vergessen anzuklicken? Doof, sorry... wieder so eine späte Reaktion von mir ... SORRY)

christophkirk
Beiträge: 14
Registriert: Do 16. Dez 2021, 12:53

Re: Keywords (& Titel & Author) auslesen und Ändern

Beitrag von christophkirk » Fr 10. Feb 2023, 09:06

SUPER COOL!!!!

Auf meiner
Version: 7.4.5.1 (x64) / LibreOffice Community
Build ID: 9c0871452b3918c1019dde9bfac75448afc4b57f

funktioniert es PERFEKT.

Auch hier herzlichen DANK... Wirklich großartig...

christophkirk
Beiträge: 14
Registriert: Do 16. Dez 2021, 12:53

Re: Keywords (& Titel & Author) auslesen und Ändern

Beitrag von christophkirk » Fr 10. Feb 2023, 09:12

NACHTRAG:

Entsprechend dem coolen HYPERLINK CHECK CODE für mehrere Dateien von Dir, werde ich versuchen die Autor/Titel/Keyword Manipulation auch noch da ein einzubauen. Also man Scannt mehrere Doks und prüft LINKS/AUTOR/TITEL/KEYWORDS.

Geht ja um die PFLEGE von vielen Dokumenten. Da gehört es irgendwie zusammen, dass man regelmäß die Korrektheit der URLs prüft & ob die Metadaten TITEL/AUTOR/KEYWORDS passen. Warum Autor? Weil oft jemand eine bestehende Datei als Vorlage nimmt, die mal vor vielen Jahren ein XYZ erstellt hat. Den gibts gar nicht mehr, und so was erkennt man dann und kann es korrigieren.

Wenn ich es hinkriege melde ich mich.

VLG und DANKE !!!

christophkirk
Beiträge: 14
Registriert: Do 16. Dez 2021, 12:53

Re: Keywords (& Titel & Author) auslesen und Ändern

Beitrag von christophkirk » Fr 10. Feb 2023, 12:43

Habe noch kurz die MsgBox "Abbrechen" abgefangen. Das hatte noch gefehlt...
If NewKeywords <> "" Then

Code: Alles auswählen

Sub Schluesselwoerter_Anpassen
        Dim sKeywords As String
        Dim NewKeywords As String
        Dim i as integer
        Dim TempArray As Object
       ' Den Array Keywords abfragen
        aKeywords = thisComponent.getDocumentProperties.Keywords
        for i = 0 to uBound(aKeywords)
            sKeywords = Join(aKeywords ,",")
        next i
         NewKeywords = InputBox ("  Derzeit eingetragene Schlüsselwörter des Dokuments: < " &sKeywords & " >  "& chr(13) & " " & chr(13) & "Sie können diese nun ändern bzw. kommasepariert neu eintragen:" ,"Schlüsselwörter kommasepariert Eintragen bzw. Ändern",  sKeywords )
         If NewKeywords <> "" Then
           aNewKeywords = Split(NewKeywords,",")
           redim aKeywords(Ubound(aNewKeywords))
           thisComponent.getDocumentProperties.Keywords = aNewKeywords
           ' Speichern
           ThisComponent.store()
           sKeywords =  Join(aNewKeywords ,",")
           MsgBox(" " & chr(13) & "  Die Schlüsselwörter des Dokuments lauten nun:        "& chr(13) & chr(13) &"  < " & sKeywords & " >   " & chr(13) & chr(13) & "  ",, "Änderungen erfolgreich")
        end if
End sub

Antworten