Aaaaaalso, hab das mal eben kurz ausprobiert. Geht eigentlich
Du brauchst eine RvSystem-Komponente, eine RvProject-Komponente und die oben besagte RvRenderPDF. In der RvSystem habe ich unter SystemSetups ssAllowSetup auf False gesetzt, damit das Auswahl-fenster nicht erscheint.
Danach klickst Du doppelt auf die Project-Kompo um den Designer zu starten. In dem Report plazierst Du eine DataMemo-Kompo, so wie du sie willst. Bei dieser noch ContainsRTF auf True setzen und DataField Param.RTF eingeben. Damit wird das Memo wird dem Inhalt des Parameters namens RTF befüllt.
Dieses Projekt dann speichern. Du kannst es danach mit der Eigenschaft StoreRave der RvProject-Kompo in Deine EXE kompilieren lassen, damit Du die Datei nicht selbst mitliefern brauchst.
Ja, und dann nur noch nen Button, ein RTF und nen Edit auf das Form und shcon kannst Du mit folgendem Code ein RTF erzeugen lassen, das in der in Edit1 angegeben Datei gespeichert wird:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure TForm1.Button2Click(Sender: TObject); var memstream: TMemoryStream; size: Integer; text: String; begin memstream := TMemoryStream.Create; RichEdit1.Lines.SaveToStream(memstream); memStream.Position := 0; Size:=memstream.Size; SetString(text,nil,Size); memstream.Read(PChar(text)^,Size); RvProject1.SetParam('RTF',text); RvSystem1.DefaultDest:=rdFile; RvSystem1.DoNativeOutput:=false; RvSystem1.RenderObject:=RvRenderPDF1; RvSystem1.OutputFileName:=Edit1.Text; RvProject1.ExecuteReport('Report1'); end; |
So einfach ist das
Da ich weiß, dass es eben nicht einfach ist, habe ich Dir das kleine Projekt, mit dem ich das eben probiert habe, hier angehängt.