Hi,
Ich hab ein Riesenproblem mit dem Drucken in meinem Programm.
Ich benutze die copyrect-Methode um die canvas meiner form direkt auf den Drucker zu kopieren. Druckt auch im Prinzip wunderbar, aber nicht auf allen Druckern in unserem Institut. Ich hab jetzt insgesamt 6 drucker ausprobiert: 4 waren unterschiedliche hp deskjet (959,970,..) bei denen alles funktionierte. Dann sind da aber noch 2 Laserdrucker von HP und Brother, die immer nur ein weißes Blatt bei meinem Programm ausspucken. Ansonsten sind die laserdrucker voll funktionsfähig - pdfs docs - geht alles.
Warum macht das nen Unterschied was für nen Drucker ich benutze?
Ist das Delphi nicht egal? Sollte sich der Windows Druckertreiber nicht darum kümmern, dass jeder Drucker richtig angesprochen wird?
Ich bin echt verzweifelt und brauche dringend Hilfe
Der Code zum Drucken sieht(etwas vereinfacht) so aus:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| if Printdialog1.Execute then begin printer.BeginDoc; form1.Canvas.Refresh; application.ProcessMessages;
// scale w:=form1.Width; h:=form1.height; wp:=printer.PageWidth - 20; hp:=wp*h div w;
// copy canvas to printer Printer.Canvas.CopyRect( Rect(10,50,wp,hp), form1.Canvas, Rect(page1.Left,page1.top,w+page1.Left, h+page1.top));
printer.EndDoc; end; |
MfG mk2
Moderiert von
tommie-lie: Titel geändert