Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Das leidige Thema: "Drucken" (https://www.delphipraxis.net/56501-das-leidige-thema-drucken.html)

Prototypjack 6. Nov 2005 22:57


Das leidige Thema: "Drucken"
 
Hallo,
Ich habe mich, ja ich würde es so ausdrücken, intensiv mit Delphi in Verbidung mit Druckprozessen auseinandergesetzt(Was natürlich(!) die Forensuche miteinbezieht).
Schnell wurde mir klar, dass dies zu einem großen Problem werden könnte.
Da gibt es Treiber die die Bilder stretchen, sie merkwürdig verändern oder sie überhaupt ganz übergehen.

Das wird zu einen Problem für mich. Zur Zeit arbeite ich an einem Projekt in dem Drucken mehr als erforderlich ist.
Der Druckdialog wird sowieso neu geschrieben und soll es mit dem von PhotoShop aufnehmen können.
Jedoch ist dies garnicht so leicht, eben wegen dieser Probleme, welcher Seiten auch immer(Ich meine mittlerweile die Treiber sind schuld).
Deshalb wollte ich hier um eure Unterstützung bitten. Wie gesagt es sollte in etwa aussehen wie der Printdialog von PhotoShop CS.
Kennt irgendjemand eine Komponente/Lib/whatever welche mir die Arbeit erleichtern könnte?
Es wäre wirklich ein Problem wenn ich das gesamte Projekt abbrechen müsste nur weil die Druckerhersteller die Firma Borland nicht mögen.

Ich bitte um eure Unterstützung!
Gruß,
Max

Bernhard Geyer 7. Nov 2005 07:18

Re: Das leidige Thema: "Drucken"
 
Zitat:

Zitat von Prototypjack
Da gibt es Treiber die die Bilder stretchen, sie merkwürdig verändern oder sie überhaupt ganz übergehen.

So grass ist mir das nicht aufgefallen. Oft ist es eher ein Fehler in der eigenen Implementierung

Zitat:

Zitat von Prototypjack
Kennt irgendjemand eine Komponente/Lib/whatever welche mir die Arbeit erleichtern könnte?

Ich würde die üblichen Verdächtigen wie List&Label, VPE usw. ausprobieren. In den meisten Fällen erleichtern diese die Arbeit.

Zitat:

Zitat von Prototypjack
Es wäre wirklich ein Problem wenn ich das gesamte Projekt abbrechen müsste nur weil die Druckerhersteller die Firma Borland nicht mögen.

Ist eher so das die Druckerhesteller ihre Treiber mit den "Standard-Anwendungen" wie Word, Excel, Acrobat testen. Und wenn es damit läuft wird die Entwicklung eingestellt auch wenn noch Hammer-Fehler drin sind.

sh17 7. Nov 2005 08:14

Re: Das leidige Thema: "Drucken"
 
Probier mal

http://www.delphiarea.com/products/#TPrintPreview

ist kostenlos

Prototypjack 7. Nov 2005 16:01

Re: Das leidige Thema: "Drucken"
 
Hallo,
Danke für die Tipps.
Diese Print Preview Suite sieht wirklich äußerst interessant aus.
Aber weitere Post sind wilkommen ;)
Gruß,
Max

Sourceshare 14. Nov 2005 08:55

Re: Das leidige Thema: "Drucken"
 
could you Put your question using English!
I couldn't understand your question, MSN:fish_pool_1@hotmail.com!

Thanatos81 14. Nov 2005 09:45

Re: Das leidige Thema: "Drucken"
 
Hope this will do:
Zitat:

Zitat von Prototypjack
Hello,
I dealt with Delphi and print processes intensively (of course this involved searching the forum).
It came to me that this could be a great problem.
There are some drivers which stretch images, alter them or just skip them.

This will be a problem for me. Currently I am working on a project where printig is more than elemental.
The TPrintDialog will be rewritten anyway and should be similar to the one of Photoshop.
But this is not easy at all beacause of those problems (By now I think the drivers are the origin of them).
That is why I wanted to ask you for your help. As mentioned before it should be like that of PhotoShop CS.
Does anyone know a component/Lib/whatever which could ease my work?
It would be a problem if I had to stop the project just because the printer maufacturers do not like Borland.

I ask for your help!
Kind regards,
Max


Sourceshare 15. Nov 2005 14:00

Re: Das leidige Thema: "Drucken"
 
you should change your method , don't use the Tpringdiag
please study:
GetDeviceCaps(Printer.Handle, LOGPIXELSX);
GetDeviceCaps(Printer.Handle, LOGPIXELSY);//GetPrint
Then use:
Printer.Canvas.StretchDraw(const Rect: TRect; Graphic: TGraphic);

Should be like this
var
DC: HDC;

dc := getdc(0);
with Printer do
try
....
R := Rect(0, 0, round(image1.picture.bitmap.width * GetDeviceCaps(Handle , HORZRES)/GetDevicecaps(dc, HORZRES)),round(image1.picture.bitmap.height * GetDeviceCaps(Handle, VERTRES)/GetDeviceCaps(dc,VERTRES)));
....

releasedc(0,dc);


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