AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi 3 Drucker drucken alles richtig einer nur ein weißes batt?!
Thema durchsuchen
Ansicht
Themen-Optionen

3 Drucker drucken alles richtig einer nur ein weißes batt?!

Ein Thema von guitar1 · begonnen am 24. Mai 2008 · letzter Beitrag vom 1. Jun 2008
Antwort Antwort
guitar1

Registriert seit: 9. Sep 2006
65 Beiträge
 
Turbo Delphi für Win32
 
#1

3 Drucker drucken alles richtig einer nur ein weißes batt?!

  Alt 24. Mai 2008, 11:28
Hi,

ich habe Programm entwickelt, das bestimmte Formulare ausdrucke kann. Auf dem PDF Drucker von FreePDF, einem Canon ip3000 und einem Canon ip4200 funktioniert alles super .. es kommt genau so aus dem Drucker wie es soll. Nun habe ich letztens versucht auf einem LaserJet 1018 von HP zu drucken ..nichts .. nur ein weißes Blatt .. mit allen andren Programme Editor, Word, Excel, Paint etc. druckt der Drucker gut, aber nicht mit meinem ??? wie kann das sein?
hier mal etwas Code:
Delphi-Quellcode:
procedure TFormMain.Drucken1Click(Sender: TObject);
var
  x,y: integer;
  SeitenAnsicht: TImage;
begin
  if PrintDialog1.Execute then
  begin
    Printer.Title:= CboxFormularart.Text+' '+LabNr.Caption;
    Printer.BeginDoc;
      SetMapMode(Printer.Canvas.Handle, MM_ANISOTROPIC);
      x:= GetDeviceCaps(Printer.Canvas.Handle, PHYSICALWIDTH);
      y:= GetDeviceCaps(Printer.Canvas.Handle, PHYSICALHEIGHT);
      SetWindowExtEx(Printer.Canvas.Handle,x,y,Nil);
      SetViewportExtEx(Printer.Canvas.Handle,x,y,Nil);
      try
        SeitenAnsicht:= Timage.Create(self);
        SeitenAnsicht.Visible:= false;
        FormDruckansicht.DruckCanvas(SeitenAnsicht, x, y);
        Printer.Canvas.Draw(0-GetDeviceCaps(Printer.Canvas.Handle, PHYSICALOFFSETX),
          0-GetDeviceCaps(Printer.Canvas.Handle, PHYSICALOFFSETY),
          SeitenAnsicht.Picture.Graphic);
      finally
        SeitenAnsicht.Free;
      end;
    Printer.EndDoc;
  end;
end;
die procedure DruckCanvas erwartet das als Parameter DruckCanvas(var Img: TImage; Width, Height: Integer);
mit den Angaben von width und height wird das Formular dann passend auf die Größe des Canvas' von Img gezeichnet (alle größen in dem Formular sind proportional zur Höhe und Breite).

Ich hoffe jemand von euch hat eine gute Idee .. denn da der ip3000 an meinem Arbeitsplatz duch den LaserJet ersetzt wurde kann ich momentan nichts mit meinem Programm durcken ... und ich benötige es eigentlich täglich!!!

grüße
guitar1
http://www.myspace.com/metalinc1
http://andi1007.funpic.de
Thomann Cyberstore mein Tipp für alle die etwas für den Musikgebrauch brauchen =)
  Mit Zitat antworten Zitat
Benutzerbild von ascotlx
ascotlx

Registriert seit: 8. Mär 2005
Ort: Hamburg
97 Beiträge
 
Delphi 7 Professional
 
#2

Re: 3 Drucker drucken alles richtig einer nur ein weißes bat

  Alt 24. Mai 2008, 11:45
moin,

wie ist der HP Drucker eingestellt ?
Welcher Druckmodus wird verwendet ?? Irgendeine PCL-6 oder PCL-5 Emulation ?
Schau mal in die Konfiguration und wähl mal die HP-Laserjet Emulation aus (wenn vorhanden)

gruß

ascotlx
workarounds gibt es wie Sand am Meer und manchmal hat man ein workaround ohne es zu wissen
  Mit Zitat antworten Zitat
grizzly

Registriert seit: 10. Dez 2004
150 Beiträge
 
Delphi XE4 Professional
 
#3

Re: 3 Drucker drucken alles richtig einer nur ein weißes bat

  Alt 24. Mai 2008, 14:32
Und es kann sich nicht um die alte Geschichte handeln, daß das Drucken mit den VCL Routinen (Einfach auf Printer.Canvas malen) bei einigen Geräten nicht funktioniert? Ich hatte das früher gelegentlich und drucke seither mit dem Code den ich hier (wow, schon 10 Jahre alt) gefunden habe.

Gruß
Michael
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: 3 Drucker drucken alles richtig einer nur ein weißes bat

  Alt 24. Mai 2008, 16:23
Jupp, grizzly hat den richtigen Link.

Hintergrund: Die BitBlt() Funktion ist von vielen Druckertreibern unterstützt und von ebenso vielen nicht. Von daher immer mit der MSDN-Library durchsuchenGetDIBits() Funktion arbeiten und nicht mit MSDN-Library durchsuchenBitBlt() (und deren Abarten). Die Draw() Routine arbeitet mit MSDN-Library durchsuchenBitBlt() bzw. MSDN-Library durchsuchenStretchBlt().
  Mit Zitat antworten Zitat
guitar1

Registriert seit: 9. Sep 2006
65 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: 3 Drucker drucken alles richtig einer nur ein weißes bat

  Alt 24. Mai 2008, 20:04
hey, vielen Dank für den Link, ich konnte es jetzt zwar noch nicht auf dem HP ausprobieren (geht erst am Mo wieder) aber da der Canon es auch nach der Änderung noch druckt bin ich da mal optimistisch eingestellt
http://www.myspace.com/metalinc1
http://andi1007.funpic.de
Thomann Cyberstore mein Tipp für alle die etwas für den Musikgebrauch brauchen =)
  Mit Zitat antworten Zitat
guitar1

Registriert seit: 9. Sep 2006
65 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: 3 Drucker drucken alles richtig einer nur ein weißes bat

  Alt 26. Mai 2008, 19:24
hi allerseits,

wie gesagt auf dem Canon und PDF-Drucker wird alles richtig gedruckt ... beim HP hingegen ... wird zwar auch alles gedruckt, jedoch mit einem dunkelgrauen Hintergrund !?!?! jetzt frag ich mich und auch euch - wie kann das sein ??? ich sende dem Drucker ja den Canvas des "Bildes" und auf dem Canvas ist der Hintergrund devinitiv WEIß und nicht grau!
Ich habe hier mal einen eingescannte version, damit sich jeder ein Bild davon machen kann, wie das aussieht ... ich habe auch schon in den Druckereinstellungen herumprobiert ... aber alle Ausdrucke hatten den selben, grauen Hintergrund

ich hoffe ihr habt eine Idee

grüße
guitar1

PS: zu dem Bild muss man sagen, das die Farben durchs einscannen entstanden sind, eigentlich ist das ganze Blatt einheitlich grau, der weiße Rand um das Bild ist der Randbereich auf dem der Drucker nicht drucken kann.
Miniaturansicht angehängter Grafiken
img_190.jpg  
http://www.myspace.com/metalinc1
http://andi1007.funpic.de
Thomann Cyberstore mein Tipp für alle die etwas für den Musikgebrauch brauchen =)
  Mit Zitat antworten Zitat
grizzly

Registriert seit: 10. Dez 2004
150 Beiträge
 
Delphi XE4 Professional
 
#7

Re: 3 Drucker drucken alles richtig einer nur ein weißes bat

  Alt 26. Mai 2008, 19:33
Nö.
Vielleicht irgendwas mit Paletten? Wird dem Bitmap in SeitenAnsicht irgendwann mal ein Pixelformat zugewiesen (in FormDruckansicht.DruckCanvas)? Wenn nicht, dann hat das Bitmap das pixelformat pfDevice - und mit dem hab ich mich auch schon gelegentlich geärgert.
Aber wie gesagt, ich hab sonst keinen Verdacht...

Gruß
Michael
  Mit Zitat antworten Zitat
guitar1

Registriert seit: 9. Sep 2006
65 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: 3 Drucker drucken alles richtig einer nur ein weißes bat

  Alt 1. Jun 2008, 17:05
hi grizzly,

vielen dank für denn tipp, es lag wirklich an der palette, ich hab sie jetzt geändert und alles klappt super
http://www.myspace.com/metalinc1
http://andi1007.funpic.de
Thomann Cyberstore mein Tipp für alle die etwas für den Musikgebrauch brauchen =)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz