Doc drucken

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
gurke
User
Beiträge: 6
Registriert: Donnerstag 10. Mai 2007, 18:39
Wohnort: Berlin

Donnerstag 10. Mai 2007, 18:42

hi.. ich möchte eine *.doc datei mit python verändern und dann drucken.. ich weiss das man mit wxPython drucken kann, aber ob dann die formatierung auch in ordnung ist fragt sich nur.. hilfe wäre sehr willkommen für andere umsetzungs möglichkeiten.

p.s.: hab kein drucker zum testen =P
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Donnerstag 10. Mai 2007, 18:58

Hi!
Zum Drucken braucht man kein GUI-Toolkit. Die Suche hift bestimmt.
Außerdem, was willst du denn ändern? Notfalls kannst du die Datei ja editiren, speichern, drucken und evtl. wieder löschen.
Gruß, jj
gurke
User
Beiträge: 6
Registriert: Donnerstag 10. Mai 2007, 18:39
Wohnort: Berlin

Donnerstag 10. Mai 2007, 19:00

will den briefkopf ändern.. drucken ohne gui-toolkit?! und ich hab immer noch das problem das die datei doc ist und ich das nicht drucken kann ohne die formation zu verlieren. danke denn noch :)
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Donnerstag 10. Mai 2007, 19:35

gurke hat geschrieben:ich möchte eine *.doc datei mit python verändern und dann drucken.
[...]
p.s.: hab kein drucker zum testen =P
Hallo gurke!

Willkommen im Python-Forum!

Öffne die Doc-Datei im Winword, editiere sie damit und drucke sie damit aus. Genau das kannst du mit Hilfe von "pywin32" http://sourceforge.net/project/showfile ... p_id=78018 machen. Du brauchst Winword dafür und du solltest wissen, wie du so etwas mit "Visual Basic for Applications" in Winword schaffst. Wenn du das weißt, dann ist es kein Problem mehr das nach Python umzusetzen. Im Winword hilft dir die Makroaufzeichnung dabei.

Für mehr Hilfe, suche hier im Forum nach "Word.Application".

Der PDFCreator installiert sich als Drucker. Wenn du auf diesen Drucker ausdruckst, dann erzeugst du damit eine PDF-Datei, die du dir dann ansehen kannst. So brauchst du keinen Drucker zum Probieren.

http://de.wikipedia.org/wiki/PDFCreator

mfg
Gerold
:-)
Zuletzt geändert von gerold am Donnerstag 10. Mai 2007, 19:37, insgesamt 1-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
gurke
User
Beiträge: 6
Registriert: Donnerstag 10. Mai 2007, 18:39
Wohnort: Berlin

Donnerstag 10. Mai 2007, 19:37

danke!
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Donnerstag 10. Mai 2007, 19:38

Für mehr Hilfe, suche hier im Forum nach "Word.Application".
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
gurke
User
Beiträge: 6
Registriert: Donnerstag 10. Mai 2007, 18:39
Wohnort: Berlin

Freitag 11. Mai 2007, 19:50

ähm ich hab jetzt alles soweit hinbekommen.. aber irgendwie will der nicht drucken krieg nen traceback und zwar:

Code: Alles auswählen

Traceback (most recent call last):
  File "C:\Dokumente und Einstellungen\gurky\Desktop\Python Programme\DVAG Customer Service\DVAG Customer Service.py", line 193, in OnPress
    doc.ActiveDocument.PrintOut()
  File "C:\Python24\Lib\site-packages\win32com\client\dynamic.py", line 496, in __getattr__
    raise AttributeError, "%s.%s" % (self._username_, attr)
AttributeError: Open.ActiveDocument
folgender code:

Code: Alles auswählen

            x = 1
            
            filename = os.path.abspath('letter.doc')
            app = win32com.client.Dispatch('Word.Application')
            app.Visible = False
            
            while (x <= int(self.letteredit.GetValue())):
                doc = app.Documents.Open(filename)
                doc.Bookmarks('name').Range.InsertAfter(self.partner.name)
                doc.Bookmarks('street').Range.InsertAfter(self.partner.street)
                doc.Bookmarks('housenr').Range.InsertAfter(self.partner.housenr)
                doc.Bookmarks('postal').Range.InsertAfter(self.partner.postal)
                doc.Bookmarks('city').Range.InsertAfter(self.partner.city)

                doc.ActiveDocument.PrintOut()
                
                doc.Close()
                del doc
                
                self.partner = Partner()
                time.sleep(2)
                x += 1
                
            app.Quit()
            del app
die bookmarks werden verändert etc.. aber beim drucken hat er dann irgendwie probleme mit ActiveDocument

danke im vorraus
gurke
User
Beiträge: 6
Registriert: Donnerstag 10. Mai 2007, 18:39
Wohnort: Berlin

Freitag 11. Mai 2007, 19:53

oh lol... sehr komisch.. hab jetzt einfach ActiveDocument weggenommen und es geht.. sorry für die belästigung :P
Antworten