Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   C++ Drucken geht nicht (https://www.delphipraxis.net/90028-drucken-geht-nicht.html)

PAX 10. Apr 2007 18:40


Drucken geht nicht
 
Grüßt euch!

Ich möchte gerne eine Grafik, innerhalb eines TImages befindlich, ausdrucken. Diese Grafik wurde nicht extern aus einer Datei geladen, sondern mit Canvas im Programm direkt gezeichnet. Die zu druckende Grafik muss natürlich auf die Druckerauflösung zurechtgezerrt werden. Ich habe es mir auch anzeigen lassen, die Grafik wird tatsächlich vergrößert.
Ich kann mir leider nicht erklären, warum dann aber garnichts ausgedruckt wird?
Hier ganz kurz die relevanten Codezeilen:

Code:
...
druck = Printer();
...
druck->BeginDoc();
...
StretchBlt(druck->Canvas->Handle, 0, 0, k.Width(), k.Height(),
Form1->Image1->Canvas->Handle, 0, 0, Form1->Image1->Width, Form1->Image1->Height, SRCCOPY);

druck->EndDoc();
Wie gesagt, die Grafikzerrung habe ich mir angeschaut, sie ist korrekt!
Ich bin mal gespannt, wo der Fehler ist.

PS: Ich drucke mit Adobe PDFwriter, ist aber prinzipiell funktionstüchtig.

PAX 13. Apr 2007 15:41

Re: Drucken geht nicht
 
Ich habe das Programm heute mit einem richtigen Drucker getestet und es funktionierte einwandfrei. Folglich muss es an einem Programmierfehler in Adobe PDFwriter liegen!

Der_Unwissende 13. Apr 2007 16:16

Re: Drucken geht nicht
 
Zitat:

Zitat von PAX
Ich habe das Programm heute mit einem richtigen Drucker getestet und es funktionierte einwandfrei. Folglich muss es an einem Programmierfehler in Adobe PDFwriter liegen!

Hi,
also einerseits ja, andererseits nein. Ich bin mir nicht ganz sicher, aber ich denke das eigentliche Problem dürfte daran liegen, wie Du k.Width und k.Height erzeugst. Ich denke am schnellsten findest Du die relevante Stelle, wenn Du einfach mal mit dem Debugger durch die Zeilen gehst und Dir die Belegungen der Variablen anschaust.
Bei den meisten PDF-Druckern gibt es ein paar Werte, die nicht ganz der eigenen Erwartung entsprechen. Ob das aber überall Programmierfehler sind, da wäre ich mir nicht sicher. Wenn ich mich richtig erinner, stellt Microsoft hier den Entwicklern von GDI-Devices recht viel frei. Kann also sein, dass Du einfach Methoden verwendest, die die gar nicht implementieren müssen...

Ist aber eher eine Vermutung und basiert auf 2/3 Wissen ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:37 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