🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Java und UNO
Java und UNO
Hallo,
ich hab eine Java-Anwendung (Swing), in welcher ich Textdokumente (odt), die ich als Templates mit Platzhaltern angelegt habe, durch die Anwendung mit Daten gefüllt haben möchte (Name, Adresse...) und dann ausdrucken will. Das ausgefüllte Textdokument soll nur ausgedruckt, aber nicht gespeichert werden (das wäre mir wichtig). Gibt es da irgendwo im Internet schon ein Beispiel, wie das funktioniert. Ich hatte mir auch schon die Examples hier http://api.libreoffice.org/examples/exa ... a_examples angeschaut, aber irgendwie komme ich da nicht weiter. Es fängt schon an, dass es mit dem Bootstrap nicht klappt und Fehlermeldungen gibt ("no office executable found" ). Im Internet fand ich die Lösung, dass man den ooo.connector.BootstrapSocketConnector benutzen sollte. Aber da muss man in der Java-Anwendung angeben, wo sich die Installation von LIbreOffice befindet. Ist das unbedingt notwendig? Gibt es denn keine andere Lösung?
Fragt Camino
ich hab eine Java-Anwendung (Swing), in welcher ich Textdokumente (odt), die ich als Templates mit Platzhaltern angelegt habe, durch die Anwendung mit Daten gefüllt haben möchte (Name, Adresse...) und dann ausdrucken will. Das ausgefüllte Textdokument soll nur ausgedruckt, aber nicht gespeichert werden (das wäre mir wichtig). Gibt es da irgendwo im Internet schon ein Beispiel, wie das funktioniert. Ich hatte mir auch schon die Examples hier http://api.libreoffice.org/examples/exa ... a_examples angeschaut, aber irgendwie komme ich da nicht weiter. Es fängt schon an, dass es mit dem Bootstrap nicht klappt und Fehlermeldungen gibt ("no office executable found" ). Im Internet fand ich die Lösung, dass man den ooo.connector.BootstrapSocketConnector benutzen sollte. Aber da muss man in der Java-Anwendung angeben, wo sich die Installation von LIbreOffice befindet. Ist das unbedingt notwendig? Gibt es denn keine andere Lösung?
Fragt Camino
Re: Java und UNO
Hallo
Mit Java kenn ich mich nicht aus, aber wenn das Dokument schon da ist, kannst du ihm doch auch einen Namen geben ( ergo: Speichern )
dann musst du nur noch auf einer shell den Befehl absetzen:
und das Dokument nach dem Ausdruck löschen.
wie das aus Java geht ? - k.A!
Karolus
Mit Java kenn ich mich nicht aus, aber wenn das Dokument schon da ist, kannst du ihm doch auch einen Namen geben ( ergo: Speichern )
dann musst du nur noch auf einer shell den Befehl absetzen:
Code: Alles auswählen
[optional/komletter/pfad/zu/]soffice[.exe] -p '/pfad/zum/dokument.ods'
wie das aus Java geht ? - k.A!

Karolus
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Java und UNO
sry, meine Kristallkugel ist gerade beim Service, und die NSA hat gerade Urlaub:Camino hat geschrieben:...("no office executable found" )...
Betriebssystem?
LO-Version?
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
Re: Java und UNO
Ja, sorry...gogo hat geschrieben:sry, meine Kristallkugel ist gerade beim Service, und die NSA hat gerade Urlaub:Camino hat geschrieben:...("no office executable found" )...
Betriebssystem?
LO-Version?
LO-Verion ist 4.1.3.2
Betriebssystem ist Windows 7
Die Java-Anwendung soll aber (nachher) unter Linux laufen (wahrscheinlich Ubuntu).
Bin gerade nur am Testen unter Windows 7, weil mein Drucker unter Debian nicht funktioniert.
Und wie gesagt, die Fehlermeldung bekam ich hiermit:
Code: Alles auswählen
com.sun.star.uno.XComponentContext xContext = null;
try {
// get the remote office component context
xContext = com.sun.star.comp.helper.Bootstrap.bootstrap
Und da hatte ich dann im Internet diese Lösung mit dem BootstrapSocketConnector gefunden (hatte bootstrapconnector.jar heruntergeladen und eingebunden):
Code: Alles auswählen
XComponentContext xContext = null;
String oooExeFolder = "C:/Program Files (x86)/LibreOffice 4/program/";
try {
// get the remote office component context
xContext = BootstrapSocketConnector.bootstrap(oooExeFolder);
Aber mir wäre schon geholfen, wenn jemand weiss, wie es geht und mir ein bisschne weiterhelfen könnte. Wie gesagt, ich möchte das Dokument (Template) einlesen, parsen und die Platzhalter mit Werten ersetzen und dann ausdrucken (ohne zwischenzuspeichern).
Re: Java und UNO
Ich möchte eigentlich gerne auf das Zwischenspeichern und Datei danach dann löschen verzichten. Deshalb suche ich Hilfe und Infos, ob das schon jemand erfolgreich hingekriegt hat. Es funktioniert wohl auch mit diesem BootstrapSocketConnector, aber halt bei mir noch nicht so richtig.karolus hat geschrieben:Hallo
Mit Java kenn ich mich nicht aus, aber wenn das Dokument schon da ist, kannst du ihm doch auch einen Namen geben ( ergo: Speichern )
dann musst du nur noch auf einer shell den Befehl absetzen:und das Dokument nach dem Ausdruck löschen.Code: Alles auswählen
[optional/komletter/pfad/zu/]soffice[.exe] -p '/pfad/zum/dokument.ods'
wie das aus Java geht ? - k.A!![]()
Karolus
Re: Java und UNO
Kann Dir bei Deinem Java-Problem leider nicht helfen, aber wenn unter Debian ein Drucker nicht funzt versuch's mit CUPS, (Konfiguration per http://localhost:631/) - das könnte auch eine Problemlösung sein, da CUPS direkten Kommandozeilendruck (lp filename) unterstützt!
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
Re: Java und UNO
Ja danke, der Drucker erscheint ja auch schon in der Konfiguration und ist als Standarddrucker eingerichtet, druckt aber nicht. Ist ein HP LaserJet 1020, mit dem hatte ich schon immer Probleme unter Debian. Mittlerweile wird er wenigstens sofort erkannt. Das mit dem Drucken krieg ich auch noch hin, hatte schon im Internet Lösungen dazu gefunden. Muss mich da nur mal ransetzen. Aber das ist ja gerade nicht so wichtig. Das mit dem Java und dem Drucken eines odt-Dokumentes wäre mir gerade wichtiger. Schade. Vielleicht hat ja wer anderes damit Erfahrungen und kann mir Tipps geben. Danke trotzdem...gogo hat geschrieben:Kann Dir bei Deinem Java-Problem leider nicht helfen, aber wenn unter Debian ein Drucker nicht funzt versuch's mit CUPS, (Konfiguration per http://localhost:631/) - das könnte auch eine Problemlösung sein, da CUPS direkten Kommandozeilendruck (lp filename) unterstützt!
Re: Java und UNO
CUPS kann nicht direkt od* -dateien drucken.gogo hat geschrieben:Kann Dir bei Deinem Java-Problem leider nicht helfen, aber wenn unter Debian ein Drucker nicht funzt versuch's mit CUPS, (Konfiguration per http://localhost:631/) - das könnte auch eine Problemlösung sein, da CUPS direkten Kommandozeilendruck (lp filename) unterstützt!
Karolus
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Java und UNO
Ich hatte ja auch schon mehrere andere Möglichkeiten versucht, aber entweder ging es da auch nur über ein Zwischenspeichern, oder es war erst mal nur für ods-Dateien entwickelt.
Zum Beispiel: http://incubator.apache.org/odftoolkit/
Da hab ich bisher auch nur eine Möglichkeit zum Speichern des odt-Dokumentes entdeckt, aber kein Drucken.
Ich glaube, das da http://www.jopendocument.org/ war die Library, welche hauptsächlich mit ods-Dateien funktionierte.
Ich hatte auch mal die Version getestet, die odt-Datei zu entpacken, den content.xml zu parsen und die Platzhalter zu ersetzen. Dann musste ich aber auch erst zwischenspeichern, um das neuerstellte Dokument zu drucken.
Versuche ohne LibreOffice, mit JasperReports, waren nicht besonders erfolgreich, da dies für Briefe u.ä. nicht besonders gut geeignet ist, eher für Berichte.
Zum Beispiel: http://incubator.apache.org/odftoolkit/
Da hab ich bisher auch nur eine Möglichkeit zum Speichern des odt-Dokumentes entdeckt, aber kein Drucken.
Ich glaube, das da http://www.jopendocument.org/ war die Library, welche hauptsächlich mit ods-Dateien funktionierte.
Ich hatte auch mal die Version getestet, die odt-Datei zu entpacken, den content.xml zu parsen und die Platzhalter zu ersetzen. Dann musste ich aber auch erst zwischenspeichern, um das neuerstellte Dokument zu drucken.
Versuche ohne LibreOffice, mit JasperReports, waren nicht besonders erfolgreich, da dies für Briefe u.ä. nicht besonders gut geeignet ist, eher für Berichte.
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.