Seite 1 von 1

Word klappt nicht...

Verfasst: Montag 27. Juli 2009, 11:17
von INFACT

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-

import win32com
import win32com.client
import os
import os.path


filename = os.path.abspath("dokument.doc")

# Word-Application referenzieren
app = win32com.client.Dispatch("Word.Application")

# Word sichtbar machen. Kann später weggelassen werden
app.Visible = False


# Quelldatei öffnen
doc = app.Documents.Open(filename)
doc.Content.Font.Name = 'Times New Roman'
doc.Content.Font.Size = 14
doc.Content.Text = "Test\n"
doc.Content.Text += "Noch ein test"
doc.Content.Font.Name = 'Arial Black'
doc.Content.Font.Size = 20
doc.Content.Text += "init 6 - reboot"
hw=doc.Shapes


hw.AddPicture('Schule.bmp') # <- Das klappt nicht 

doc.Bookmarks("Kontrollkästchen2").Select # <- Das klappt nicht 
doc.Bookmarks("marke2").Range.InsertAfter("Hier ist Marke2") # <- Das klappt nicht 
doc.Bookmarks("marke3").Range.InsertAfter("Hier ist Marke3")# <- Das klappt nicht 
app.Run('Makro1')# <- Das klappt nicht 


doc.Save()
try:
    doc.PrintOut(True, False, 0)
except:
    print "Bitte einen Drucker anschließen!"
while doc.BackgroundPrintingStatus > 0: # <- Das klappt nicht 
    time.sleep(0.1)

doc.Close()
del doc

app.Quit()
del app


print "Fertig"
Ich habe hierzu ein paar Fragen:

1. Wie kann ich Checkboxen einbauen?
Wenn ich das noch dazu dichte

Code: Alles auswählen

doc.Bookmarks("Kontrollkästchen2").Select
doc.Bookmarks("marke2").Range.InsertAfter("Hier ist Marke2")
doc.Bookmarks("marke3").Range.InsertAfter("Hier ist Marke3")
app.Run('Makro1')
dann kommt immer dieser Error

Code: Alles auswählen

Traceback (most recent call last):
  File "C:\Dokumente und Einstellungen\Renate\Desktop\word.py", line 29, in <module>
    doc.Bookmarks("Kontrollkästchen2").Select
  File "C:\Python25\Lib\site-packages\win32com\client\dynamic.py", line 172, in __call__
    return self._get_good_object_(self._oleobj_.Invoke(*allArgs),self._olerepr_.defaultDispatchName,None)
com_error: (-2147352567, 'Ausnahmefehler aufgetreten.', (0, u'Microsoft Word', u'Das angeforderte Element ist nicht in der Sammlung vorhanden.', u'C:\\Programme\\Microsoft Office\\Office\\1031\\wdmain9.chm', 25421, -2146822347), None)
2. Wie kann ich 2 verschiedene Formate haben?
So dass Hallo in Times New Roman geschrieben ist und Welt in IMPACT oder so.
3. Wie kann ich Text farbig machen?
4. Warum funktioniert soviel nicht?

Ich benutze Word 2003 - Vielleicht liegt das daran?

Verfasst: Montag 27. Juli 2009, 13:36
von Dauerbaustelle
Fragen 1 bis 3 beantwortet dir bestimmt die Word-Developer-Doku, Frage 4 kann hier garantiert keiner beantworten weil sie viel zu schwammig ist. "Klappt nicht" eine sehr ungenaue Fehlerbeschreibung.

Im Übrigen brauchst du Objekte nicht von Hand löschen (`del foo`), das macht der GC für dich.

Gruß

Verfasst: Montag 27. Juli 2009, 13:49
von INFACT
? ich habe den error doch hingeschrieben. Das ist immer der gleiche.

Gibt es denn eine Alternative - mit excel klappt es auch nicht - Geht das vielleicht mir openoffice?

Was für eine word version benutzt ihr denn?
Oder gibt es irgentwo eine legale kostenlose ältere excel version mit der das klappt?

Verfasst: Montag 27. Juli 2009, 15:02
von mkesper
INFACT hat geschrieben:Was für eine word version benutzt ihr denn?
Oder gibt es irgentwo eine legale kostenlose ältere excel version mit der das klappt?
Legale kostenlose Excelversionen gibt es nicht.
Für Oberflächenerstellung benutzt man Tkinter, wxPython, Qt... aber kein Excel/Word/Access.

Verfasst: Montag 27. Juli 2009, 15:05
von HWK
@INFACT: Es hat sich sowohl für Word als auch Excel bewährt, die gewünschten Aktionen mit dem Makrorekorder aufzuzeichnen und dann entsprechend für Python anzupassen.
@Dauerbaustelle: Du hast recht, es sollte eigentlich auch ohne del funktionieren. Gerold hat dies aber einmal in einem Thread empfohlen, da er ohne del wohl öfter Probleme bekommen hat.
MfG
HWK

Verfasst: Montag 27. Juli 2009, 15:28
von Leonidas
mkallas hat geschrieben:
INFACT hat geschrieben:Was für eine word version benutzt ihr denn?
Oder gibt es irgentwo eine legale kostenlose ältere excel version mit der das klappt?
Legale kostenlose Excelversionen gibt es nicht.
Stimmt, das einzige was es vom Microsoft Office legal und kostenlos bei Microsoft zum Download ist, ist Word; habe gerade nachgesehen.

Verfasst: Montag 27. Juli 2009, 15:30
von HWK
Hier noch der Thread mit Gerolds Empfehlung: http://www.python-forum.de/post-51333.html#51333
MfG
HWK

Verfasst: Montag 27. Juli 2009, 20:55
von INFACT
Ich habe das jetzt mit html erledigt - ist wohl eher eine notlösung, oder weiß jemand wie man html ohne browser ausdrucken kann? oder über cmd ohne ein fenster zu öffnen?

Verfasst: Montag 27. Juli 2009, 21:04
von Dauerbaustelle
Benutze doch restructuredtext und rst2pdf, das kannst du drucken.

Gruß

Verfasst: Dienstag 28. Juli 2009, 00:04
von problembär
Leonidas hat geschrieben:Stimmt, das einzige was es vom Microsoft Office legal und kostenlos bei Microsoft zum Download ist, ist Word; habe gerade nachgesehen.
Echt, nicht nur den "Word Viewer"? Wo denn? (Hab' damals noch 250,- DM bezahlt :(.)

Gruß

Verfasst: Dienstag 28. Juli 2009, 00:37
von Leonidas
problembär hat geschrieben:Echt, nicht nur den "Word Viewer"? Wo denn?
Ja, das echte Word 5.5, direkt von Microsoft.

Verfasst: Dienstag 28. Juli 2009, 00:53
von problembär
Ach so, Word für DOS :lol:. Ich denke, das hat aber keine win32com-Anbindung ...

Gruß