Drucken unter Windows (simplewinprint.py)

Code-Stücke können hier veröffentlicht werden.
Patrick
User
Beiträge: 49
Registriert: Montag 5. Juli 2004, 06:35
Wohnort: Berlin
Kontaktdaten:

Also bei mir funktioniert das ziemlich gut. Bis auf die Tatsache, dass man eben hoellisch beim Verwenden von .NET Objekten aufpassen muss, da man natuerlich auch deren Fehler importiert. ;-)

Bekannte Probleme: Handle-Freigabe, Speicherprobleme
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Welche Python.NET Version hast du denn gerold? Heute habe ich in der Mailingliste gelesen, dass 1.0 RC1 rausgekommen ist. Versuchs doch mal damit..
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Leonidas hat geschrieben: Heute habe ich in der Mailingliste gelesen, dass 1.0 RC1 rausgekommen ist.
Hi Leonidas!

Werde ich mir ansehen. Danke für den Hinweis.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
be_veronic
User
Beiträge: 16
Registriert: Mittwoch 19. Januar 2005, 23:30

Hi Gerold,

Ich möchte deinen Skript für drucken einer Text Datei benutzen.Ich lese vom Datei Zeile für Zeile mache ein String und verwende dann print_rawtext.
Aber als neue Zeile bekommen ich nur ein komisches Symbol .

Kannst du mir helfen?
Danke.
Vero
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

be_veronic hat geschrieben: Ich möchte deinen Skript für drucken einer Text Datei benutzen.Ich lese vom Datei Zeile für Zeile mache ein String und verwende dann print_rawtext. Aber als neue Zeile bekommen ich nur ein komisches Symbol .
Hi Vero!

Verwende print_rawtext nur dann, wenn du mit dem Text auch Sonderkommandos (z.B. Kassenschublade öffnen oder Papier abschneiden) an den Drucker schicken möchtest.

Am besten wird wohl sein, wenn du einfach mal probierst, ob der Ausdruck funktioniert.

Code: Alles auswählen

>>> import simplewinprint
>>> p = simplewinprint.Printer()
>>> p.startdoc()
>>> p.print_textblock("Hallo Welt Zeile 1.")
>>> p.print_textblock("Hallo Welt Zeile 2.")
>>> p.enddoc()
>>> 
Bei diesem Test muss der Standarddrucker zwei Zeilen ausdrucken.

Hier noch ein Beispiel:
http://www.python-forum.de/viewtopic.php?p=18401#18401

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
be_veronic
User
Beiträge: 16
Registriert: Mittwoch 19. Januar 2005, 23:30

Hi Gerold,

Mein Problem ist wenn ich 'white spaces' Anfang der Zeile habe, die sind nicht anerkannt.

Die Zeilen fangen trozdem vom linke Seite an,und die leere Zeichen sind ignoriert.
Danke im voraus. :)
Vero
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

be_veronic hat geschrieben: Die Zeilen fangen trozdem vom linke Seite an,und die leere Zeichen sind ignoriert.
Hi Vero!

Du hast einen Bug entdeckt :shock: :shock:
Ich habe eine zusätzliche Prüfung einprogrammiert. Die neue Version steht ab sofort zur Verfügung :o

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
be_veronic
User
Beiträge: 16
Registriert: Mittwoch 19. Januar 2005, 23:30

Hallo Gerold,

Danke für deiner prompt Antwort.Jetzt macht er den 'indentation' aber nicht ganz korrekt.Für deinen Beispiel ich fange mit der Hallo Welt Zeile 2 wo 'o' von Hallo Welt Zeile 1 ist aber die fängt schon unter den erste 'l'an.

Ich wurde dir dankbar wenn du das regeln konntest.
Gruss,
Vero
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

be_veronic hat geschrieben: Danke für deiner prompt Antwort.Jetzt macht er den 'indentation' aber nicht ganz korrekt.Für deinen Beispiel ich fange mit der Hallo Welt Zeile 2 wo 'o' von Hallo Welt Zeile 1 ist aber die fängt schon unter den erste 'l'an.
Hi Vero!

Jetzt langsam wird es schwierig, deinen Ausführungen zu folgen. Bitte sei mir für diese Aussage nicht böse. Auch wenn es schwierig sein kann, bitte versuche dein Deutsch ein wenig aufzubessern. :roll:

Und jetzt zu deinem Problem. Es klingt so, als ob du eine proportionale Schrift, wie z.B. Arial oder Times New Roman einsetzt. Diese Schriften zeichnen sich dadurch aus, dass sie verschiedene Breiten pro Zeichen verwenden. Ein "W" verbraucht also mehr Platz als ein "I". Wenn du möchtest, dass jedes Zeichen exakt die gleiche Breite verwendet, dann musst du eine nicht proportionale Schrift wie z. B. Courier New oder Fixedsys verwenden.

Die Standardschrift stellst du so ein:

Code: Alles auswählen

>>> p.default_font_name = "Courier New"
>>> p.default_font_size = "11"
mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
be_veronic
User
Beiträge: 16
Registriert: Mittwoch 19. Januar 2005, 23:30

Hi Gerold,

Danke für deine Vorschläge, as hat bei mir geklappt.Ich finde deiner Skript sehr nutzbar.

Ich bin dir nicht böse,ich arbeite an meinem Deutsch :oops:

Gruss,
Vero
Antworten