SimpleWinPrint.py und Win32Print

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
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

SimpleWinPrint.py (von Gerold)
Win32Print (aus Standard Biliothek)

- Hallo ich kann mit win32print schon gut drucken alles kein Problem (Habe mir auch SimpleWinPrint.py angeschaut). Ich komme jedoch nicht weiter beim ändern der Einstellungen wie Hochkant und Quer sowie die Größe: A4, A3, A2, A1 oder A0.
- Dank PIL kann ich die Größe meiner TIF Datein heraus finden und auch von A3 auf A4 konvertieren o.ä. falls nötig.

Nur ich komme nicht über A4 Hochkant hinweg.
Kann ich das mit win32print lösen? A3, Quer z.B

Kann ich die PIL zum drucken von Bildern verwenden?
Oder andere Module?

Bitte Hinweise, Ideen, weiter führende Links. Danke


PS.: Beim Drucken geht es nur um Bilddateien (erstmal zumindestens)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

win32print ist übrigens nicht in der stdlib, das gehört nämlich zu pywin32. Zum angenehmen Drucken solltest du dir die Druckfunktionen von wxPython ansehen, da ist vermutlich eher was interessantes für dich dabei als in pywin32 - so wie ich die WinAPI kenne.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Mit wxPython kann ichs drucken, habe nur ein Problem das ich nicht die Eigenschaften voreinstellen kann.
Ich möchte aber unbedingt alles voreinstellen damit der user sich die zeit spart. Die Daten habe ich schon vorliegen.

Gibts dazu Ideen?


wxPython Drucken aus dem Wiki:
http://wiki.wxpython.org/index.cgi/Prin ... rinting%29
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Ich habe gearde etwas gefunden um unter Windows (scheinbar) perfekt drucken zu können folgende Seite beschäftigt sich mit der WinAPI.

http://tgolden.sc.sabren.com/python/win ... print.html

Ich poste das falls jemand einmal die Forum suche benutzt und damit ich wenn ich nachhause komme selber den Link noch finde ;-)

Viele Grüße von der Arbeit aus :-)
pyStyler
User
Beiträge: 311
Registriert: Montag 12. Juni 2006, 14:24

dann mal gleich ein Primitives beispiel mit Tkinter

Code: Alles auswählen

import tempfile
import win32api
import Tkinter as tk
import time
import sys

NAME = 'Mustermann'
VORNAME = 'Max'
STRASSE = 'Muster-Str. 23/5'
PLZ = '101010'
ORT = 'Musterort'

OBEN = '='*30
UNTEN = '='*30
text='''
%s
=	Meine Adresse:\n=
=	%s %s           
=	%s               
=	%s              
=	%s               
%s\n\n\n\n\n 
%s
''' % ( OBEN, NAME, VORNAME, STRASSE, PLZ, ORT, UNTEN ,time.ctime())

mfont= ('arial',25, 'bold')

class PrintFile:
	def onPrintFile(self):
		filename = tempfile.mktemp('tkp.txt') 
		open(filename, 'w').write(text)
		win32api.ShellExecute(0, "print", filename, None, ".", 0)
			
class tkApp:
	def __init__(self, master):
		self.master=master
		self.printer = PrintFile()

		tk.Button(self.master, 
					text='OnPrint', 
					font=mfont,
					command=self.OnPrint).pack(side=tk.LEFT,
					expand=tk.YES, 
					fill=tk.BOTH, padx=20, pady=20)
					
		tk.Button(self.master, text='OnClose', font=mfont,
					command=self.OnClose).pack(side=tk.LEFT,
					fill=tk.BOTH, expand=tk.YES, padx=20, pady=20)
					
	def OnPrint(self):
		self.printer.onPrintFile()
	def OnClose(self):
		sys.exit()
		
def _main():
	root = tk.Tk()
	root.geometry('550x200')
	app = tkApp(root)
	root.mainloop()
	
if __name__=='__main__':
	_main()
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Wie ich eingangs geschreiben habe geht es mir hauptsächlich um die einstellung von Hoch und Quer sowie die Papier größe A3 und größer.
ChuckBor1s
User
Beiträge: 4
Registriert: Dienstag 6. Juli 2021, 11:02

Moin nach 14 Jahren habe ich das gleiche Anliegen. Das drucken mit Din A6 möchte ich. Nun bin schon seit einem Monat dran.
Habe hier auch schon einen Post dazu gemacht. viewtopic.php?f=1&t=52486

devmode = win32print.GetPrinter(hprinter, 2)["pDevMode"]

devmode.PaperSize = win32con.DMPAPER_A4 ###Genau das hat mir gefehlt
# 1 = portrait, 2 = landscape
Dachte etwas gefunden zu haben aber war nichts bzw. noch zu hoch für mich.
Da kommen dann Fehlermeldungen. Aber kann auch bei mir der Fehler sein.
Bin noch Anfänger. Gibt es im Jahr 2021 schon eine Lösung dafür oder wurde das Problem anders gelöst?
Antworten