Hallo,
ich möchte gerne einen Rave-Report im Hintergrund (nicht sichtbar) füllen, als PDF-File ablegen und dem Anwender dann nur das PDF-File anbieten.
Ich habe
HIER schon einmal versucht den Weg über ein temporäres NDR-File zu gehen, klappt aber auch nicht.
Ich habe "unter Google" den Tipp gefunden ich sollte direkt über den Stream gehen.
Die Fehlermeldung ist aber dieselbe wie in dem oben genannten Thread.
Exception der Klasse EReport Printer "Unexpected Header Code [82] found in Report File"
Hier mein Code:
Delphi-Quellcode:
procedure Tfrm_main.Button2Click(Sender: TObject);
var NDRStream: TMemoryStream;
sPdfFileName :
string;
bCreatePdfFile : boolean;
begin
sPdfFileName := sLokalerAnwendungsSystemPfad + '
willi.pdf';
// Steam erzeugen
NDRStream := TMemoryStream.Create;
// Report öffnen
RvProject1.Open;
// Text zuweisen
...
// Grafik zuweisen
...
// Report als Stream speichern
rvproject1.SaveToStream(NDRStream);
// Als PDF-File speichern
NDRStream.Position := 0;
bCreatePdfFile := true;
try
try
RvRenderPDF1.PrintRender(NDRStream, sPdfFileName);
except
bCreatePdfFile := false;
end;
finally
NDRStream.Free;
end;
if (bCreatePdfFile = true)
then
begin
ShowMessage('
Der Report wurde erstellt.');
ShellExecute(
Handle, '
open', pchar(sPdfFileName), '
',
nil, SW_SHOW)
end
else ShowMessage('
Der Report konnte nicht erstellt werden.');
end;
Als Vorschau kann ich den Report problemlos aufrufen und von dort aus auch "von Hand" als PDF speichern.
Also kann mein Report doch nicht die Ursache sein?
Vielleicht hat ja jemand eine Idee für mich.
Gruß Holger.