Textfelder in Writerdokument befüllen mit Java

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Textfelder in Writerdokument befüllen mit Java

Beitrag von komma4 »

Java_Basti hat geschrieben:Ich suche seit mittlerweile fast einer Woche in Diversen Foren nach Tutorials, wie ich mit Java ein schon Vorhandenes WriterDokument bearbeiten kann.
Das gesamte Developer's Guide (im SDK-Download) ist mit Java-Schnipseln zur Veranschaulichung der API gespikt... was kann man daran nicht verstehen?
Java_Basti hat geschrieben:bisher hab ich es mit Bookmarks probiert
Das ist mein Ansatz (mit Basic) - und klappt gut
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Textfelder in Writerdokument befüllen mit Java

Beitrag von komma4 »

Eine Textmarke ist eine unsichtbare Markierung (an der Stelle des sichtbaren Cursors, oder zu Beginn einer Markierung im Text).

Ich entwerfe eine Vorlage, schreibe einen Platzhaltertext an die Stelle, markiere den Platzhalter und dann Einfügen>Textmarke...>[neuerName]


Du hast im DevGuide nichts gefunden?
Nicht mal die Suchfunktion?
http://wiki.services.openoffice.org/wik ... /Bookmarks



Mit MRI aufgezeichnet:
Setzen des Inhaltes der Textmarke wr im aktuellen Dokument oInitialTarget

Code: Alles auswählen

import com.sun.star.container.NoSuchElementException;
import com.sun.star.container.XNameAccess;
import com.sun.star.lang.WrappedTargetException;
import com.sun.star.text.XBookmarksSupplier;
import com.sun.star.text.XTextContent;
import com.sun.star.text.XTextRange;
import com.sun.star.uno.RuntimeException;
import com.sun.star.uno.UnoRuntime;

static public void snippet(Object oInitialTarget)
{
	try
	{
		XBookmarksSupplier xBookmarksSupplier = UnoRuntime.queryInterface(
			XBookmarksSupplier.class, oInitialTarget);
		XNameAccess xNameAccess = xBookmarksSupplier.getBookmarks();
		
		XTextContent xTextContent = UnoRuntime.queryInterface(
			XTextContent.class, xNameAccess.getByName("wr"));
		
		XTextRange xTextRange = xTextContent.getAnchor();
		
		xTextRange.setString("mein neuer Inhalt");
		
	}
	catch (NoSuchElementException e1)
	{
		// getByName
		e1.printStackTrace();
	}
	catch (WrappedTargetException e2)
	{
		// getByName
		e2.printStackTrace();
	}
	catch (RuntimeException e3)
	{
		// getByName
		e3.printStackTrace();
	}
}
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Textfelder in Writerdokument befüllen mit Java

Beitrag von Stephan »

Ich kann hier, da ich selbst kein Java kann, eigentlich nur unterstreichen das der Vorschlag von Winfries bookmarks zu verwenden der Richtige ist, welcher auch das leistet was Du verlangt hast:
Bevor Fragen aufkommen wofür ich dieses Problem genau brauche:
Das Programm soll Dynamisch werte aus einer Datenbank lesen(Adresse usw) und in ein Anschreiben schreiben und abspeichern.

An weiteren Diskussion kan ich mich nicht sinnvoll beteiligen da ich kein Java spreche und selbst nur Hinweise zu Basic geben könnte was "FElder" betrifft. Allerdings ist über den Link den Winfried nannte einen Hinweisseite zu FEldern direkt auszurrufen, welche einige grundlegende INfos enthält:
http://wiki.services.openoffice.org/wik ... ext_Fields


Gruß
Stephan
Antworten