Autor Beitrag
Bennle
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 101

WinXP
Delphi 2007 Pro, C# (VS 2005)
BeitragVerfasst: Mo 19.12.05 22:50 
Hallo,
Ich möchte gerne mein RichEdit-Text als PDF mit Rave drucken bzw sofort speichern. Allerdings hab ich keine Ahnung ob Rave damit funktioniert oder geeignet ist. Kann mir das einer erklären und evtl gleich den nötigen Code liefern?

Ich wäre darüber sehr dankbar!

MfG
Bennle
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mo 19.12.05 22:56 
Du brauchst eigentlich nur die TRvRenderPDF-Komponente einbinden, sie zu aktivieren und kannst dann z.B. mit folgendem Code das PDF erzeugen lassen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
RvSystem1.DefaultDest:=rdFile;
RvSystem1.DoNativeOutput:=false;
RvSystem1.RenderObject:=RvRenderPDF1;
RvSystem1.OutputFileName:='C:\test.pdf';
RvProject1.ExecuteReport('Report');
Bennle Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 101

WinXP
Delphi 2007 Pro, C# (VS 2005)
BeitragVerfasst: Mo 19.12.05 23:14 
user profile iconUGrohne hat folgendes geschrieben:
Du brauchst eigentlich nur die TRvRenderPDF-Komponente einbinden, sie zu aktivieren und kannst dann z.B. mit folgendem Code das PDF erzeugen lassen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
RvSystem1.DefaultDest:=rdFile;
RvSystem1.DoNativeOutput:=false;
RvSystem1.RenderObject:=RvRenderPDF1;
RvSystem1.OutputFileName:='C:\test.pdf';
RvProject1.ExecuteReport('Report');


Hallo,
Ok danke, aber ich bekomm eine Fehlermeldung! "The following reporting project does not exsist"
Was bedeutet das?
Und wo setze ich meinen Richedit ein? Und wie genau das es als RDF ist?

MfG
Bennle

PS: Bin ein Neuling bei der Textbe-/verarbeitung
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mo 19.12.05 23:36 
OK, ich hab Deinen Text nicht komplett genau durchgelesen, daher mein kleiner Fehler. Ich bin davon ausgegangen, dass Du bereits ein Rave-Projekt hast, mit dem Du drucken kannst und nur noch die PDF-Funktionalität brauchst. Ich versuche das jetzt mal nachzuvollziehen, da ich normalerweise Rave nur in Verbindung mit Datenbanken verwende.

Aber schau besser nochmal hier im Forum nach PDF, es gibt bestimmt einfachere Dinge für DIch als für so etwas Rave zu verwenden. Du musst nämlich erstmal mehrere Komponenten verwenden und dann erst noch einen Report dafür erstellen.
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mo 19.12.05 23:58 
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:
ausblenden 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 :mrgreen:

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.
Einloggen, um Attachments anzusehen!
Bennle Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 101

WinXP
Delphi 2007 Pro, C# (VS 2005)
BeitragVerfasst: Di 20.12.05 19:33 
Hallo,
Danke! Schein sehr gut zu sein! Und einfach ist es wirklich nicht!

Nur habe ich noch folgendes Problem: Ich bekomme immer eine leere PDF erzeugt! Die Größe verändert sich zwar von der Datei aber ich sehe leider keinen Text.

Beim start der Komponente kommt auch eine Fehlermeldung! (Anhang)

MfG
Bennle
Einloggen, um Attachments anzusehen!
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Di 20.12.05 19:36 
Du verwendest Delphi 7? Hast Du das Update auf Rave 5.0.8 installiert? Wenn nicht, einfach bei Borland downloaden. Das dürfte Dein Problem beheben.

Dem Parameter RTF werden alle Zeilen des RichEdits übergeben.
Bennle Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 101

WinXP
Delphi 2007 Pro, C# (VS 2005)
BeitragVerfasst: Di 20.12.05 22:53 
user profile iconUGrohne hat folgendes geschrieben:
Du verwendest Delphi 7? Hast Du das Update auf Rave 5.0.8 installiert? Wenn nicht, einfach bei Borland downloaden. Das dürfte Dein Problem beheben.

Dem Parameter RTF werden alle Zeilen des RichEdits übergeben.


Hallo,
Super am Update lag es! Vielen Dank! Naja den Designer muss ich mir noch was genauer ansehen :-D

Super Forum, Admins und Hilfe.
Vielen Dank

MfG
Bennle