Date: prev next · Thread: first prev next last
2018 Archives by date, by thread · List index


Hallo Lilo,

mit PERL könnte man das so machen:

Mit einem kleinen PERL-Programm [2] die zu ändernden Dateien systemweit einsammeln und dann über eine Schleife für jede dieser Dateien das Makro [1] unsichtbar ( = LO Oberfläche wird nicht gestartet ) ausführen.

Ich habe es mal mit Deiner Datei getestet. Da funktionierte der "unsichtbare" Makro-Aufruf und die Datei wurde wie gewünscht modifiziert.

Die Schleife in dem PERL-Programm habe ich nur "angedeutet".

Aber bitte erst mal in einem definierten Umfeld testen und überprüfen, ob alles so funktioniert, wie Du es Dir vorstellst.

Gruß
Hans-Werner ;-))


[1] MAKRO ( macro:///Standard.AutoAus.AutoAus - Das Makro "AutoAus" stehe im Modul "AutoAus" in der Bibliothek "Standard" )

Option Explicit

Sub AutoAus (D as String) ' Datei

' "AutoAus" nach einer Idee von Gerhard Weydt ergänzt um:
'
' + Übergabe Datei(name) an Makro.
' + Datei unsichtbar öffnen.
' + Datei Speiuchern und schließen.

Dim oD as Object ' [object] Document
Dim oPStyles as Object ' [object] PStyles
Dim oStyle as Object ' [object] Style
Dim aD() as Variant ' [array] Dummy
Dim iStyle as long ' [index] Style

Dim aPV(0) as New com.sun.star.beans.PropertyValue
aPV(0).name = "Hidden"
aPV(0).value = True
oD = StarDesktop.loadComponentFromURL(ConvertToURL(D),"_blank",0,aPV()) ' Datei 'unsichtbar' öffnen

oPStyles = oD.StyleFamilies.getByName("ParagraphStyles")
For iStyle = 0 To oPStyles.Count-1 Step 1
oStyle = oPStyles.getByIndex(iStyle)
oStyle.isAutoUpdate = False
Next iStyle

oD.StoreAsURL(ConvertToURL(D),aD()) ' Datei speichern
oD.Close(False) ' Datei schließen

End Sub

[2] P E R L ( AutoAus.pl )

use strict;
use warnings;

my $D; # Dateiname
my $L; # LibreOffice
my $M; # Makro

$L = "C:/Program Files/LibreOffice/program/soffice.exe"; # LibreOffice-Programm

# ITER: Über alle zu aktualisierenden Dateien:

$D = "E:/TMP/standard-defekt1.odt"; # Zu aktualisierende Datei
$M = "macro:///Standard.AutoAus.AutoAus($D)"; # Makro-Aufruf mit zu aktualisierender Datei
`"$L" --nologo "$M"`; # Makro "unsichtbar" ausführen

# ITER-END

------ Originalnachricht ------
Von: "Lilo von Hanffstengel" <info@gwendragon.de>
An: "users-de" <users@de.libreoffice.org>
Gesendet: 12.11.2018 09:57:27
Betreff: Re: [de-users] Einfach und schnell deaktivierung von 'Automatische Aktualisierung' in allen Absatzvorlagen

Hallo Gerhard,
Am Sun, 11 Nov 2018, um 15:46:06 [GMT +0100] (ist 15:46 wo ich lebe)
schrieb Gerhard:

das folgende Makro habe ich mit einer Dokument-Vorlage (.ott), getestet,
bei der ich bei einer Absatzvorlage die Automatik gesetzt hatte. Wie
gewünscht, war danach der Haken weg. Das Makro setzt sämtliche
Automatikeinträge auf aus! Das Speichern danach habe ich bewusst nicht
ins Makro genommen.
Bitte aber auf einer Kopie ausprobieren, bevor du das in größerem
Maßstab ausführst.

Sub AutoAus

Dim Pstyles as object, style as object, i as long, upper as long

PStyles = ThisComponent.StyleFamilies.getByName("ParagraphStyles")
upper = PStyles.Count - 1
for i = 0 to upper
     style = PStyles.getByIndex(i)
     style.isAutoUpdate = False
next

end sub

Das Makro klappt und setzt es korrekt auf Aus.

Mal schauen wie ich das dann im größeren Umfang i nder Linux-Shell
verwende, damit ich das besser automatisieren kann; wahrscheinlich als
Python-Script.

Erst mal ist das Problem damit erledigt.

Danke sehr, Gerhard, für deinen Tipp.

ÜS: Ich werde wohl mal "Andrew Pitonyak's OpenOffice Macro Information" auf
http://www.pitonyak.org/oo.php durchlesen müssen, um für später
gewappnet zu sein, wenn es wieder OO/LO-Makros braucht.

--
Freundliche Grüße
GwenDragon // Lilo von Hanffstengel
--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy


--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.