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

Doc drucken

Beitragvon gurke » 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:

Beitragvon schlangenbeschwörer » 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

Beitragvon gurke » 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: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: Doc drucken

Beitragvon gerold » 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

Beitragvon gurke » Donnerstag 10. Mai 2007, 19:37

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

Beitragvon gerold » 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

Beitragvon gurke » 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=]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[/code]

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

Beitragvon gurke » 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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder