pyUNO

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

pyUNO

Beitragvon murph » Donnerstag 6. Juli 2006, 22:15

hi!
irgendwie verstehe ich pyuno nicht recht. ich war auf der homepage und habe mal spaßeshalber ein skript laufen lassen, der "hello world" als OO-dokument abspecihern wollte.

nun kam die fehlermeldung, dass er über sockets keine verbindung zu startoffice herrstellen konnte, was mich nicht wunderte: ich habe kein star-office installiert.
aber trotdem steht überall, dass pyuno für OO wäre!
hat von euch einer eine idee, woran das liegen könnte?
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 6. Juli 2006, 23:25

PyUNO ist ja nur eine Bibliothek über die du die OpenOffice-Funktionen nutzen kannst aus Python heraus (also so wie pywin32 und Office-COM). Wenn du OpenOffice nicht installiert hast, bringt es dir nichts.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
BlackJack

Beitragvon BlackJack » Donnerstag 6. Juli 2006, 23:26

Wie hast Du das Skript denn gestartet? Lief dabei ein OOo?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: pyUNO

Beitragvon gerold » Freitag 7. Juli 2006, 07:37

murph hat geschrieben:nun kam die fehlermeldung, dass er über sockets keine verbindung zu startoffice herrstellen konnte

Hi murph!

1.) OO ist ,kurz gesagt, das freie StarOffice. Die API ist identisch.

2.) Du musst OO auf eine bestimmte Art starten, damit es von pyUno aus angesprochen werden kann. Siehe http://udk.openoffice.org/python/python ... l#tutorial (suche nach "Hello World")

lg
Gerold
:-)

PS: Ich halte UNO für unnötig komplizierte Scheiße. Da lobe ich mir COM unter Windows. Leider muss man mit UNO leben, wenn man OO ansprechen will.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
BlackJack

Beitragvon BlackJack » Freitag 7. Juli 2006, 13:24

UNO ist halt eine API von Sun. Sie ist für "alle" Sprachen, also eben auch statische, und Sun neigt ein wenig zum Überspezifizieren. Jedes Paket muss jedes Entwurfmuster aus dem GOF Buch mindestens einmal benutzen.
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

Beitragvon querdenker » Freitag 7. Juli 2006, 13:27

BlackJack hat geschrieben:...Jedes Paket muss jedes Entwurfmuster aus dem GOF Buch mindestens einmal benutzen.


:?: GOF Buch :?:

Kannst du da mal bitte etwas genauer werden?

mfg, querdenker
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Beitragvon Rebecca » Freitag 7. Juli 2006, 13:28

BlackJack hat geschrieben:UNO ist halt eine API von Sun.

UNO ist ein Kartenspiel. :P SCNR
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

Beitragvon murph » Freitag 7. Juli 2006, 16:51

also genau von der seite habe ich das beispiel.
habe auch bei meinem openoffice (/usr/bin/oowriter)
die argumente "-accept=socket,host=localhost,port=2002;urp;"
übergeben, einmal ohne, einmal mit den gänsefüßchen (nach dem ersten fehlversuch)
habe dann kein anderes oo mehr offen gehabt, wie es in der anleitung steht.
aber ok, staroffice und openoffice sind gleichbedeutend für pyuno.
abgdf

Beitragvon abgdf » Freitag 7. Juli 2006, 21:07

Hi,

habe da ein Python-Skript geschrieben, das pyuno / OOo-Writer-Scripting etwas vereinfachen soll:

http://www.oooforum.org/forum/viewtopic.phtml?p=151480

Was haltet ihr davon ?

@murph: Findest Du das hilfreich ?

Viele Grüße
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

Beitragvon murph » Freitag 7. Juli 2006, 21:36

also ich halte davon seehr viel.
aber hat
if oooopen==0:
nicht ein o zuviel?
ich weiß, das sind peanuts, aber danke, dass scih da mal wer die arbeit gemacht hat!
aber kannst du dich an en standard halten und 4 leerschritte einrücken?
abgdf

Beitragvon abgdf » Samstag 8. Juli 2006, 15:58

@murph:

Vielen Dank für das freundliche Feedback.

"oooopen" soll "OpenOffice.org-open" abkürzen. ".org" wegen

Das Programm wird oft auch kurz OpenOffice genannt. Da dieser Begriff in der Schweiz jedoch markenrechtlich geschützt ist, wird als Name OpenOffice.org (Abkürzung: OOo) verwendet.

Von: http://de.wikipedia.org/wiki/Openoffice.org


Ob man vor oder nach der Rechtschreibreform bei englischen Ausdrücken mit mehr als zwei Vokalen dann doch einen wegläßt, darüber kann man sich wohl streiten. Ich fand die vier os irgendwie lustig.

Ich schreibe Code mit vi in xterm. Mir fällt es schwer, kleine Schrift zu lesen. Daher starte ich xterm nach langem Probieren mit sehr großer Schrift mit

Code: Alles auswählen

xterm +sb -font '-*-terminus-*-*-*-*-24-*-*-*-*-*-*-*' -fg white -bg black

Den Terminus-Font dazu gibt's hier:

http://suse.mirrors.tds.net/pub/opensus ... noarch.rpm

Die große Schrift hat leider zur Folge, daß ich jeweils nur zwei Zeichen Einrückung machen kann.
Ich könnte aber gegebenenfalls ein Python-Skript schreiben, das den Code in Zukunft vor dem Posten automatisch um die weiteren Leerzeichen erweitert.
Edit: Gemacht (Etwas Offtopic, sorry) 2to4.py:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: utf8 -*-

from sys import exit

f=file("script.py","r")
a=f.readlines()
f.close()

add=""
anz=0

for i in a:
  if i[0:2]=="  " and i[2] != " ":
    anz=1

if anz==0:
  print "No line with indentation of two detected. Exiting."
  exit(1) 

for i in range(len(a)):
  for u in a[i]:
    if u != " ":
      break
    add += " "
  a[i] = add+a[i]
  add = ""
f=file("4out.py","w")
f.writelines(a)
f.close()


und 4to2.py:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: utf8 -*-

from sys import exit

f=file("script.py","r")
a=f.readlines()
f.close()

sp=0

for i in range(len(a)):
  if a[i][0:2]=="  " and a[i][2] != " ":
    print "Line with indentation of two detected. Exiting."
    exit(1)
 
  for u in a[i]:
    if u != " ":
      break
    sp += 1

  a[i]=a[i][sp/2:]
  sp=0

f=file("2out.py","w")
f.writelines(a)
f.close()


Jedenfalls nochmals vielen Dank.

Viele Grüße
Zuletzt geändert von abgdf am Samstag 8. Juli 2006, 19:51, insgesamt 1-mal geändert.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 8. Juli 2006, 16:07

querdenker hat geschrieben::?: GOF Buch :?:

Es geht um das Buch der Gang of Four. Es geht darum, dass Sun zu exzessiven nutzen der Design Patterns neigt, auch gerne an stellen wo das eher stört als hilft.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
abgdf

Beitragvon abgdf » Samstag 8. Juli 2006, 20:09

Hallo nochmal,

wenn man OpenOffice-Dokumente mit Python ohne OpenOffice erstellen möchte, könnte man auch Module wie

http://ooopy.sourceforge.net/

oder

http://www.bezirksreiter.de/PyOpenOffice.htm

verwenden.

Viele Grüße

P.S.: "Gang of Four" ? Klingt nach

http://de.wikipedia.org/wiki/Viererbande_(China)

Wer ist online?

Mitglieder in diesem Forum: Google [Bot]