Neue Dokumentvorlage auf altes Dokument anwenden?

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: Neue Dokumentvorlage auf altes Dokument anwenden?

von Eia » Fr, 04.05.2007 06:02

Christiana hat geschrieben:
Eia hat geschrieben:Auf der Mailingliste wurde mittlerweile eine Version veröffentlicht, die bei mir (mit angepasstem Vorlagen-Namen und Vorlagen-Pfad) funktioniert hat
Das Makro läuft auch bei mir fehlerfrei durch. Das Ergebnis ist allerdings genauso wie bei dem Makro von Winfried. Unter Datei - Eigenschaften sehe ich den neuen Vorlagennamen, nur in dem Dokument hat sich inhaltlich nichts verändert.
Bei mir lief es so ab:
ich hatte zwei Vorlagen. eine "alte" und eine "neue". In der neuen hatte ich der Standard-Absatzvorlage eine andere Hintergrundfarbe zugewiesen und eine Absatzvorlage erstellt, die es in der "alten" nicht gab.
Ich habe ein Dokument erstellt aufgrund der "alten" Vorlage und gespeichert.
Dann das Makro laufen lassen und die "neue" zugeordnet:
Sofort erschien die Hintergrundfarbe gemäss der neuen Vorlage und die extra erstellte Absatzvorlage war auch vorhanden.
Ich habe das Dokument gespeichert und geschlossen.
Dann habe ich die "neue" Vorlage zum Bearbeiten geöffnet, die Einstellungen der Standard-Absatzvorlage wieder geändert und die Vorlage gespeichert.
Dann das Dokument wieder geöffnet und siehe da: mir wurde mitgeteilt, dass die Vorlage geändert wurde und ich konnte die Aenderungen übernehmen.

mfG

von Christiana » Do, 03.05.2007 21:53

Eia hat geschrieben:Auf der Mailingliste wurde mittlerweile eine Version veröffentlicht, die bei mir (mit angepasstem Vorlagen-Namen und Vorlagen-Pfad) funktioniert hat
Das Makro läuft auch bei mir fehlerfrei durch. Das Ergebnis ist allerdings genauso wie bei dem Makro von Winfried. Unter Datei - Eigenschaften sehe ich den neuen Vorlagennamen, nur in dem Dokument hat sich inhaltlich nichts verändert.

Die Sache mit dem Zeitstempel finde ich total logisch. Auf so was wär ich selber nie gekommen.
Stephan hat geschrieben:Öffne nochmals die Datei "MeinDOK" und Du erhältst die Abfrage ob die Vorlagen aktualisiert werden sollen, bejahe diese und es wird aktualisiert.
Ich erhalte nun auch die Abfrage, ob die Vorlagen aktualisiert werden sollen, doch nach dem Bejahen basiert mein Dokument inhaltlich immer noch auf der alten Vorlage ...

Übrigens, ich arbeite mit OOo 2.1 (Win XP).

Vielleicht liegt es ja auch an meinen Vorlagen. Ich habe sie so gestaltet wie mir Eia hier schon einmal so genial geraten hat.

Ändere ich die Vorlage, werden die Änderungen auch inhaltlich in den darauf basierenden Dokumenten übernommen. Nur mit dem Ersetzen klappt es nun nicht. Irgendwo ist noch ein Haken ...

Auch wenn es noch nicht klappt, habe ich wieder viel durch Euch dazu gelernt! Vielen, vielen Dank für Eure Mühe!

Christiana

von Eia » Do, 03.05.2007 13:49

Auf der Mailingliste wurde mittlerweile eine Version veröffentlicht, die bei mir (mit angepasstem Vorlagen-Namen und Vorlagen-Pfad) funktioniert hat:

Code: Alles auswählen

SUB  VorlageNeu
        dim args(0) as new com.sun.star.beans.PropertyValue
        sTemplateName = "NameDerVorlage"
        sURL = "file:///HomeVerzeichnis/.openoffice.org2/user/template/NameDerVorlage.ott"
        args(0).Name = "OverwriteStyles"
        args(0).Value = True
        ThisComponent.stylefamilies.loadStylesFromURL( sURL, args() )
        ThisComponent.DocumentInfo.Template = sTemplateName
        ThisComponent.DocumentInfo.TemplateFileName = sURL
End SUB 
mfG

von Stephan » Do, 03.05.2007 13:41

Mein Problem besteht übrigens immer noch. Ich habe es mehrmals und mit verschiedenen Dokumentvorlagen probiert!
Was hast Du probiert?

Ich habe es jetzt mal kurz getestet und es verhält sich bei mir wie vermutet:

speichere eine Datei als Vorlage "Vorlage1" um 12:01 Uhr
Speichere eine weitere Datei als Vorlage "Vorlage2" um 12:02 Uhr

Erstelle eine neue Datei basierend auf Dokumentvorlage "Vorlage1" und speichere diese um 12:03 Uhr.

Verwende das Makro um dem gerade gespeicherten Dokument die andere Dokumentvorlage zuzuweisen, also in etwa:

Code: Alles auswählen

myDok = ThisComponent 
myDok.DocumentInfo.Template = "Vorlage2" 
myDok.DocumentInfo.TemplateFilename = ConvertToURL("u:\Eigene Dateien\Vorlage2.ott")
Speichere nach Durchlauf des Makros das Dokument ("MeinDOK" 12:04 Uhr) und schließe es. Öffne das Dokument erneut.

Reaktion:
keine - da das Dokument den Zeitstempel 12:04 trägt, die nun gültige Dokumentvorlage aber 12:02. Da die Vorlage 2 Minuten vor dem Dokument erstellt wurde, kann OOo nur annehmen das sie zum Erstellungszeitpunkt aktuell war, es besteht also keine Notwendigkeit Veränderungen einzulesen.

Schließe das Dokument wieder. Öffne "Vorlage2" zum Bearbeiten und nimm eine beliebige Veränderung vor, einzig aus dem Grund das die Speichern-Schaltfläche aktiv wird und Du Veränderungen speichern kannst. Speichere die Änderungen, hierbei wird auch die 'Dateizeit' auf beispielsweise 12:05 geändert. Schliesse die Vorlage.

Öffne nochmals die Datei "MeinDOK" und Du erhältst die Abfrage ob die Vorlagen aktualisiert werden sollen, bejahe diese und es wird aktualisiert.


So bei mir der Stand der Dinge, OOo 2.0.4 (Windows)


Das Erstellen eines neuen Dokumentes aufgrund der neuen Vorlage und das anschließende Hereinkopieren des Inhaltes des alten Dokumentes scheint momentan doch der sicherste, beste und schnellste Weg zu sein.


Du kannst genausogut (nachdem Du die Dokumentvorlage getauscht hast) das tun was Matthias vorschlägt.




Gruß
Stephan

von Eia » Do, 03.05.2007 11:55

Christiana hat geschrieben:H Bereits in Version 2.3 soll dieses Anliegen realisiert sein? Das wäre ja toll!
Na ja, das schlägt jemand vor. Terminiert ist es aber noch nicht offiziell, es steht da bloß 2.*
Mein Problem besteht übrigens immer noch. Ich habe es mehrmals und mit verschiedenen Dokumentvorlagen probiert! Auch das Makro des von Eia genannten NG-Beitrags habe ich getestet. Ich erhalte natürlich die gleiche Fehlermeldung wie Claudia und habe keine Ahnung woran es liegt
Der Beitrag ist immer noch aktiv, vielleicht kommt er ja noch zu einem guten Ende. Ich selbst kann leider zum Thema Makro gar nichts sagen.

mfG

von Christiana » Do, 03.05.2007 11:21

Hallo Eia und Stephan,

vielen Dank für Eure investierte Zeit und Hilfe!

Meine Englischkenntnisse lassen leider zu wünschen übrig. Habe ich es richtig verstanden. Bereits in Version 2.3 soll dieses Anliegen realisiert sein? Das wäre ja toll!

Mein Problem besteht übrigens immer noch. Ich habe es mehrmals und mit verschiedenen Dokumentvorlagen probiert! Auch das Makro des von Eia genannten NG-Beitrags habe ich getestet. Ich erhalte natürlich die gleiche Fehlermeldung wie Claudia und habe keine Ahnung woran es liegt ...

Das Erstellen eines neuen Dokumentes aufgrund der neuen Vorlage und das anschließende Hereinkopieren des Inhaltes des alten Dokumentes scheint momentan doch der sicherste, beste und schnellste Weg zu sein.

mfg
Christiana

von Eia » Do, 03.05.2007 07:47

von Stephan » Mi, 02.05.2007 19:50

kann man sich jede Dokumentvorlage für sein 'altes' Dokument holen,
die man sich wünscht.


Nein, das kann man eben nicht. Diese Funktion lädt nur Vorlagen aus Dokumentvorlagen (Absatz-, Zeichen,-, etc.Vorlagen) tauscht aber nicht die Dokumentvorlage aus auf der das Dokument basiert.

Dieser Tausch ist aber wichtig wenn Hirarchien in Dokumentvorlagen genutzt werden sollen, weshalb das manuelle Editieren der XML-Dateien oder der Einsatz eines Makros unverzichtbar sind, zum Austausch der Dokumentvorlage auf welcher ein Dokument basiert.
ich bin nicht ganz einverstanden mit den eher pessimistischen Aussagen
Naja, pessimistisch klinge ich hoffentlich nicht, ich sehe auch in dem Ganzen kein größeres Problem, aber allein mit Bordmitteln geht es eben nicht.
Offensichtlich ist aber immer noch die alte Vorlagendatei hinterlegt, d.h. inhaltlich werden keine Änderungen sichtbar.

Was mache ich nur falsch?
Meiner Erinnerung gibt es in den XML-Dateien einen Zeitstempel, welcher beim Öffnen der Datei mit der letzten Änderung der zugrunde liegenden Vorlagendatei verglichen wird.
Bin jetzt aber nicht gänzlich sicher, wenn Dein Problem anhält melde Dich nochml, dann muß ich das mal prüfen.


Gruß
Stephan

von manese » Mi, 02.05.2007 18:53

Hallo Forum,
ich bin nicht ganz einverstanden mit den eher pessimistischen Aussagen,
die ich bisher zu diesem Thema gefunden habe.

Wenn man nämlich den Formatvorlagen-Katalog (Stylisten) ganz weit öffnet,
findet man ganz rechts ein Ikon
mit einem grünen Kreuz.
Wenn man darauf drückt,
– Auswahl: Vorlagen laden … –
kann man sich jede Dokumentvorlage für sein 'altes' Dokument holen,
die man sich wünscht.


Es ist sogar möglich,
sich die Einstellungen aus einem einfachen Dokument zu holen.
Nicht vergessen,
einen Haken bei „Überschreiben“ zu setzen!
Alles andere läuft dann automatisch.

Ich verwende die Funktion so oft,
dass ich mir das 'versteckte' Ikon in eine andere Symbolleiste kopiert habe,
damit ich immer Zugriff darauf habe,
auch wenn der Formatvorlagen-Katalog (Stylist) mal nicht offen ist.

Alles Gute
matthias

von Christiana » Mi, 02.05.2007 12:53

Hallo,

erst einmal vielen Dank für Eure Hilfe.

Leider bin ich noch nicht am Ziel meiner Wünsche. Auf beiden Wegen erreiche ich nur die Änderung des Vorlagennamens. Offensichtlich ist aber immer noch die alte Vorlagendatei hinterlegt, d.h. inhaltlich werden keine Änderungen sichtbar.

Was mache ich nur falsch?

mfg
Christiana

von Udo » Mi, 02.05.2007 10:45

Bei manchen Dateien wurde unter Datei/Eigenschaften/Allgemein kein Vorlagenname angezeigt. Ich vermute, dass aus diesen Dateien nachträglich erst die Dokumentvorlage erzeugt wurde.

Der Weg über die Änderung des Vorlagennamens bzw. den Eintrag des meta template Eintrags klappte. :)

Danke für die Tipps.

Diese Hantierung ist allerdings für Normalanwender eines Textsystems eine Zumutung. :(
Hoffentlich können die Entwickler das etwas einfacher gestalten.

Udo

Re: Neue Dokumentvorlage auf altes Dokument anwenden?

von komma4 » Mi, 02.05.2007 09:57

Christiana hat geschrieben:Gibt es dazu bereits ein Mustermakro? Oder weiß jemand wie das direkte Editieren des Quelltextes funktioniert?
direktes Editieren:
(native) OOo-Dateien (mit Endungen *.sdw oder *.odt) sind ZIP-gepackte Dateien: Deine Datei in einem Arbeitsverzeichnis auspacken;
in der meta.xml nachschauen: die verwendete Vorlage wird hier angegeben, bspw.:

Code: Alles auswählen

xlink:role="template" xlink:href="/pfad/zur/vorlage/dok-vorlage.stw"
dahinter der (unter Datei>Eigenschaften) angezeigte Name als "title"
Das habe ich nicht getestet!

Ändern per Makro:
den folgenden Code anpassen und auf die geöffnete Datei (im Vordergrund) anwenden.

Code: Alles auswählen

myDok = ThisComponent
myDok.DocumentInfo.Template = "BriefNeu"
myDok.DocumentInfo.TemplateFilename = ConvertToURL("u:\Eigene Dateien\Brief2007privat.ott")
Hilft das?

von Eia » Mi, 02.05.2007 08:28

Ich habe noch diesen NG-Beitrag gefunden.
Hab's aber nicht selbst ausprobiert.
mfG

Re: Neue Dokumentvorlage auf altes Dokument anwenden?

von Christiana » Mi, 02.05.2007 08:06

Eia hat geschrieben: Man kann die Dokumentvorlage nicht "austauschen". Du musst ein neues Dokument aufgrund der neuen Vorlage erstellen und den Inhalt des alten Dokumentes hereinkopieren.
Bisher habe ich es auch immer so gemacht. Wenn viele Dokumente auf einer neuen Vorlage basieren sollen, ist das natürlich sehr aufwändig.

Im ooowiki habe ich hier folgendes gefunden:
Es ist in der Benutzeroberfläche nicht möglich, bei einem Dokument nachträglich die Information zu ändern, welche Dokumentvorlage ihm zu Grunde liegt. Für solche Änderungen ist ein Makro oder ein direktes Editieren im Quelltext des Dokumentes erforderlich.
Leider stehen dazu keine weiteren Angaben. Gibt es dazu bereits ein Mustermakro? Oder weiß jemand wie das direkte Editieren des Quelltextes funktioniert?

mfg
Christiana

Re: Neue Dokumentvorlage auf altes Dokument anwenden?

von Eia » Mi, 02.05.2007 07:34

Udo hat geschrieben:Wie kann ich erkennen, welche Dokumentvorlage ein Dokument benutzt?
  • Unter Datei/Eigenschaften/Allgemein ist die Vorlage eingetragen
  • Mit dem Feldbefehl Dokument/Dokumentvorlage kann man Namen und Pfad der Dokumentvorlage im Dokument anzeigen lassen
Wie kann ich ein Dokument von seiner bisherigen auf eine neue Dokumentvorlage umstellen?
Nicht direkt. Man kann die Dokumentvorlage nicht "austauschen". Du musst ein neues Dokument aufgrund der neuen Vorlage erstellen und den Inhalt des alten Dokumentes hereinkopieren.

mfG

Nach oben