Word klappt nicht...

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.
Antworten
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

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?
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

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ß
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

? 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?
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

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.
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

@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
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Hier noch der Thread mit Gerolds Empfehlung: http://www.python-forum.de/post-51333.html#51333
MfG
HWK
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

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?
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Benutze doch restructuredtext und rst2pdf, das kannst du drucken.

Gruß
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ß
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

problembär hat geschrieben:Echt, nicht nur den "Word Viewer"? Wo denn?
Ja, das echte Word 5.5, direkt von Microsoft.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
problembär

Ach so, Word für DOS :lol:. Ich denke, das hat aber keine win32com-Anbindung ...

Gruß
Antworten