Difference between revisions of "WriterAutomation/de"
From Lazarus wiki
Jump to navigationJump to searchm |
m (Fixed syntax highlighting; deleted category included in page template) |
||
Line 1: | Line 1: | ||
{{WriterAutomation}} | {{WriterAutomation}} | ||
− | + | ||
+ | |||
Zurück zur [[Office Automation/de|Office Automation]].<br> | Zurück zur [[Office Automation/de|Office Automation]].<br> | ||
− | + | ||
__TOC__ | __TOC__ | ||
− | + | ||
+ | |||
=Writer= | =Writer= | ||
− | + | ||
==Benötigte Units== | ==Benötigte Units== | ||
− | <syntaxhighlight> | + | |
+ | <syntaxhighlight lang=pascal> | ||
uses | uses | ||
..., ComObj, Variants, LazUtf8, ...; | ..., ComObj, Variants, LazUtf8, ...; | ||
Line 14: | Line 17: | ||
=Aufbau einer Steuerung für die Anwendung Writer= | =Aufbau einer Steuerung für die Anwendung Writer= | ||
− | + | ||
==Erstellen eines neuen Dokuments und es unter einem neuen Namen speichern== | ==Erstellen eines neuen Dokuments und es unter einem neuen Namen speichern== | ||
− | <syntaxhighlight> | + | |
+ | <syntaxhighlight lang=pascal> | ||
... | ... | ||
Line 73: | Line 77: | ||
end; | end; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | ||
==Öffnen eines vorhandenen Dokuments und Speichern des Dokuments== | ==Öffnen eines vorhandenen Dokuments und Speichern des Dokuments== | ||
− | <syntaxhighlight> | + | |
+ | <syntaxhighlight lang=pascal> | ||
... | ... | ||
var | var | ||
Line 121: | Line 126: | ||
end; | end; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
==Öffnen eines vorhandenen Dokuments und das Verwenden von Bookmarks== | ==Öffnen eines vorhandenen Dokuments und das Verwenden von Bookmarks== | ||
− | Bevor mit Bookmarks gearbeitet werden kann muss ein Office-Dokument als Vorlage erstellt werden. | + | |
− | Diese Vorlage müssen Sie an den entsprechenden Stellen mit den benötigten Bookmarks versehen. | + | Bevor mit Bookmarks gearbeitet werden kann muss ein Office-Dokument als Vorlage erstellt werden. |
− | + | ||
− | Beispiel: | + | Diese Vorlage müssen Sie an den entsprechenden Stellen mit den benötigten Bookmarks versehen. |
− | <syntaxhighlight> | + | |
+ | Beispiel: | ||
+ | |||
+ | <syntaxhighlight lang=pascal> | ||
... | ... | ||
var | var | ||
Line 195: | Line 204: | ||
end; | end; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
− | |||
− | |||
− |
Latest revision as of 12:42, 4 March 2020
Dieser Artikel behandelt ausschließlich Windows.
Siehe auch: Multiplatform Programming Guide/de
│
Deutsch (de) │
Zurück zur Office Automation.
Writer
Benötigte Units
uses
..., ComObj, Variants, LazUtf8, ...;
Aufbau einer Steuerung für die Anwendung Writer
Erstellen eines neuen Dokuments und es unter einem neuen Namen speichern
...
var
// Reservieren des Speichers
varOfficeApp: olevariant;
varDesktop: olevariant;
varLoadParams: olevariant;
varDokument: olevariant;
varBookmark: olevariant;
varTextCursor: olevariant;
strDateiname: shortstring; // nur Literale und Shortstrings sind automatisierbar
begin
// Erstellt das OleObjekt und erstellt den Zeiger darauf
varOfficeApp := CreateOleObject('com.sun.star.ServiceManager');
// Erstellt den Zeiger auf den Officedesktop
varDesktop := varOfficeApp.createInstance('com.sun.star.frame.Desktop');
// Erstellt ein leeres Array das für die Dokumentenerstellung benötigt wird
varLoadParams := VarArrayCreate([0, -1], varVariant);
// Erstellt ein neues (leeres) Dokument (Workbook) und setzt den Zeiger darauf
varDokument := varDesktop.LoadComponentFromURL('private:factory/swriter', '_blank', 0, varLoadParams);
...
// Variante 1:
// Speichert das Dokument unter einem neuen Namen
varDokument.StoreAsURL('file:///D:/test.odt', varLoadParams);
// Variante 2:
// Speichert das Dokument mit Umlauten im neuen Dateinamen
strDateiname := 'file:///D:/' + Utf8ToSys('täst.odt');
varDokument.StoreAsURL(strDateiname, varLoadParams);
// Wird nicht zwischen dem Speichern und dem schliessen des Dokuments gewartet, dann stürzen
// unter Umständen Star-, Open- und LibreOffice ab.
// Beim Speichern auf Notebooks oder in Netzwerken empfehlen sich höhere Wartezeiten.
Sleep(1000);
// Schliesst das Dokument
varDokument.close(True);
// Beendet die Anwendung
varDesktop.terminate;
// Freigabe des Speichers
varDesktop := UnAssigned;
varDokument := UnAssigned;
varLoadParams := UnAssigned;
varOfficeApp := UnAssigned;
end;
Öffnen eines vorhandenen Dokuments und Speichern des Dokuments
...
var
// Reservieren des Speichers
varOfficeApp: olevariant;
varDesktop: olevariant;
varLoadParams: olevariant;
varUrl: variant;
varDokument: olevariant;
begin
// Erstellt das OleObjekt und erstellt den Zeiger darauf
varOfficeApp := CreateOleObject('com.sun.star.ServiceManager');
// Erstellt den Zeiger auf den Officedesktop
varDesktop := varOfficeApp.createInstance('com.sun.star.frame.Desktop');
// Erstellt ein leeres Array das für die Dokumentenerstellung benötigt wird
varLoadParams := VarArrayCreate([0, -1], varVariant);
// Öffnet ein neues vorhandenes Dokument (Workbook) und setzt den Zeiger darauf
varDokument := varDesktop.LoadComponentFromURL('file:///D:/Test.odt', '_blank', 0, varLoadParams);
// Speichert das Dokument
varDokument.Store;
...
// Wird nicht zwischen dem Speichern und dem schliessen des Dokuments gewartet, dann stürzen
// unter Umständen Star-, Open- und LibreOffice ab.
// Beim Speichern auf Notebooks oder in Netzwerken empfehlen sich höhere Wartezeiten.
Sleep(1000);
// Schliesst das Dokument
varDokument.Close(True);
//Beendet die Anwendung
varDesktop.terminate;
// Freigabe des Speichers
varDesktop := UnAssigned;
varDokument := UnAssigned;
varLoadParams := UnAssigned;
varOfficeApp := UnAssigned;
end;
Öffnen eines vorhandenen Dokuments und das Verwenden von Bookmarks
Bevor mit Bookmarks gearbeitet werden kann muss ein Office-Dokument als Vorlage erstellt werden.
Diese Vorlage müssen Sie an den entsprechenden Stellen mit den benötigten Bookmarks versehen.
Beispiel:
...
var
// Reservieren des Speichers
varOfficeApp: olevariant;
varDesktop: olevariant;
varLoadParams: olevariant;
varDokument: olevariant;
varBookmark: olevariant;
varTextCursor: olevariant;
// Benötigte Hilfsvariable
varUebergabe: variant;
begin
// Erstellt das OleObjekt und erstellt den Zeiger darauf
varOfficeApp := CreateOleObject('com.sun.star.ServiceManager');
// Erstellt den Zeiger auf den Officedesktop
varDesktop := varOfficeApp.createInstance('com.sun.star.frame.Desktop');
// Erstellt ein leeres Array das für die Dokumentenerstellung benötigt wird
varLoadParams := VarArrayCreate([0, -1], varVariant);
// Öffnet ein neues vorhandenes Dokument (Workbook) und setzt den Zeiger darauf
varDokument := varDesktop.LoadComponentFromURL('file:///D:/Test.odt', '_blank', 0, varLoadParams);
...
// Holt die Adresse der Bookmark
varBookmark := varDokument.BookMarks.getByName('txtTest');
// Bestimmt die Adresse des Cursors
varTextCursor := varBookmark.Anchor.Text.createTextCursorByRange(varBookmark.Anchor);
// Weist der Hilfsvariablen einen UTF16 codierten Text zu
// Der Text sollte immer UTF16 codiert sein, das die Office-Anwendungen nur UTF16 beherrschen
varUebergabe := Utf8ToUtf16('Hallo Welt');
// Übergibt die Hilfsvariable an den textCursor der Office-Anwendung
varTextCursor.SetString(varUebergabe);
...
// Speichert das Dokument
varDokument.store;
// Wird nicht zwischen dem Speichern und dem schliessen des Dokuments gewartet, dann stürzen
// unter Umständen Star-, Open- und LibreOffice ab.
// Beim Speichern auf Notebooks oder in Netzwerken empfehlen sich höhere Wartezeiten.
Sleep(1000);
// Schliesst das Dokument
varDokument.Close(True);
// Beendet die Anwendung
varDesktop.terminate;
// Freigabe des Speichers
varUebergabe := Unassigned;
varTextCursor := Unassigned;
varBookmark := Unassigned;
varDokument := Unassigned;
varLoadParams := Unassigned;
varDesktop := Unassigned;
varOfficeApp := Unassigned;
end;