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

. Ich denke, das hat aber keine win32com-Anbindung ...
Gruß