So, habe das jetzt bei mir eingebaut und habe nur noch ein Problem:
Wie schicke ich ihm ne zweite Seite?
Ich habe das so versucht:
Delphi-Quellcode:
myGraphic := TBitmap.Create;
myCanvasF := TCanvas.Create;
myCanvasB := TCanvas.Create;
try
if FileExists(ExtractFilePath(Application.ExeName) + '!NewCard.bmp') then
myGraphic.LoadFromFile(ExtractFilePath(Application.ExeName) + '!NewCard.bmp');
myCanvasF.Handle := PrntHandle;
X := GetDeviceCaps(PrntHandle,PHYSICALOFFSETX);
Y := GetDeviceCaps(PrntHandle,PHYSICALOFFSETY);
GetDIBSizes(myGraphic.Handle, HeaderSize, ImageSize);
myCanvasF.Draw(0-X, 0-Y, myGraphic);
myCanvasF.StretchDraw(Rect(0-X, 0-Y, 1027, 648), myGraphic);
if FileExists(ExtractFilePath(Application.ExeName) + '!NewCard2.bmp') then
begin
if @_DCStartPage <> nil then
_DCStartPage();
myGraphic.LoadFromFile(ExtractFilePath(Application.ExeName) + '!NewCard2.bmp');
myCanvasB.Handle := PrntHandle;
myCanvasB.Draw(0-X, 0-Y, myGraphic);
myCanvasB.StretchDraw(Rect(0-X, 0-Y, 1027, 648), myGraphic);
end;
finally
myGraphic.Free;
myCanvasF.Free;
myCanvasB.Free;
end;
Result := _DCContinue(0);
Bei diesem Code wird die zweite Seite auf die erste Seite gedruckt und die erste gar nicht.
Alle Funktionen mit dem Underscore sind aus einer anderen Applikation die aufgerufen werden und die den Druckjob verwalten.