OpenOffice Headless

OpenOffice stellt die Möglichkeit zur Verfügung, alle Funktionen über eine Schnittstelle von aussen zu benutzen. Man kann OpenOffice sogar als Dienst starten. Seit Version 2.3 ist das Hilfsprogramm xvfb nicht mehr nötig.

Links

Install & Run

Mit Jaunty scheinen die folgenden Pakete nicht mehr benötigt zu werden. (bzw. python-uno ist schon vorinstalliert)

apt-get install openoffice.org-headless
apt-get install openoffice.org-java-common
apt-get install openoffice.org-writer
apt-get install python-uno

Starten:

/usr/bin/soffice "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" -headless -nologo -norestore -nofirststartwizard

weitere Startparameter

-pt printer

Weitere nützliche Pakete:

apt-get install python-sqlalchemy
apt-get install python-mysqldb

Tipps & Tricks & Code

Vorsicht bei Laufzeitfehlern

Problem: Bei Laufzeitfehlern kann es passieren, dass ein Dokument “geöffnet” bleibt, was zur Folge hat, dass dasselbe Dokument nicht mehr gespeichert werden kann (I/O Exception)

Lösung: OpenOffice beenden (kill) und neu starten

Überprüfen, ob OpenOffice auf dem Server läuft

Quelle: http://lucasmanual.com/mywiki/OpenOffice

try:
    #Am I able to connect?
    context = resolver.resolve("uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext")
 
except Exception ,e :
    #If I got the error
    if 'connect to socket' in str(e):
        import os
        #Start it 
        os.system('''/usr/bin/openoffice -accept="socket,host=localhost,port=2002;urp;"''')
        import time
        #Wait 3 seconds for openoffice to load.
        time.sleep(3)
        #See if we can connect again
        context = resolver.resolve("uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext")

CUPS und Drucken

nötige Pakete:

  • cups - Der CUPS-Server
  • cups-client - Der CUPS-Client, kann auf reinen Clients auch einzeln installiert werden
  • cups-bsd - Kompatibilitätslayer für das alte BSD-Drucksystem

Bis einschließlich Ubuntu 8.04 Hardy Heron heißen die Pakete:

  • cupsys
  • cupsys-client
  • cupsys-bsd
  • hplip und
  • hpijs - Für HP-Drucker, egal ob Laser- oder Tintenstrahldrucker
  • foomatic-filters-ppds - Enthält viele Treiber von Linuxprinting.org.
  • cupsys-driver-gutenprint - Enthält viele Treiber für sonstige Farb-Tintendrucker
apt-get install cupsys cupsys-client cupsys-bsd hplip hpijs
apt-get install foomatic-filters cupsys-driver-gutenprint

Ob noch weitere Treiber erforderlich sind muss geschaut werden. Es stehen auf jedenfall mehr Treiber in der Desktopversion zur Auswahl.

Der Drucker kann über die CUPS-Admin Seite hinzugefügt werden. Es gibt aber auch Kommandozeilen Befehle dafür.

https://server:631/admin

Zugriffsrechte

Ich musste noch die Zugriffsrechte erhöhen, damit ich über die Webseite den Drucker hinzufügen konnte.

/etc/cups/cups.conf

...
  <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After CUPS-Accept-Jobs CUPS-Reject-Jobs>
#    AuthType Default
#    Require user @SYSTEM
    Order deny,allow
    Allow all
  </Limit>
...

Drucken auf der Shell

# Druckerliste anzeigen
lpstat -p -d -o
# PDF drucken
lp -d HP_LJ_2200 testen.pdf

Schacht-Auswahl (Shell)

lpoptions -l

Zeigt eine Liste aller möglicher Optionen für den Parameter -o.
Die verschiedenen Schächte sind unter dem Punkt InputSlot/Media Source aufgelistet.

Folgende Angaben wurden getestet mit einem HP LaserJet 2200 mit 250-Blatt Zusatzschacht:

# Manueller Einzug
lp -d HP_LJ_2200 -o media=MultiPurpose testen.pdf
# Oberer Papierschacht
lp -d HP_LJ_2200 -o media=Upper testen.pdf
# Unterer Zusatzschacht
lp -d HP_LJ_2200 -o media=LargeCapacity testen.pdf

Weitere Informationen:

Unter der CUPS-Adminoberfläche (https://server:631/admin) kann der Standardschacht ausgewählt werden. Die Select-Box für die Schachtauswahl (→ HTML-Source!) gibt ebenfalls auskunft über die Namen der Schächte.

Links

 
linux/ooo-headless.txt · Zuletzt geändert: 26.05.2009 17:17 von tylmann