RTF Druckkomponente

Rund um die LCL und andere Komponenten
JosefKoller
Beiträge: 115
Registriert: Sa 17. Mär 2007, 10:53

RTF Druckkomponente

Beitrag von JosefKoller »

Hallo,

gibt es in Lazarus eine Druckkomponente, die via RTF-Dateiformat arbeitet (analog EkRTF in Delphi).

Danke

Josef

ralli
Beiträge: 374
Registriert: Mi 13. Sep 2006, 15:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Hagen a.T.W.
Kontaktdaten:

Re: RTF Druckkomponente

Beitrag von ralli »

Nein !

ralli
Pentium 4 - 2GB - Debian Lenny - Gnome 2.22.3 - Nvidia 8600 GT - FPC 2.2.2 - Lazarus 0.9.26 - GTK2

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: RTF Druckkomponente

Beitrag von monta »

ich kenn ekRTF nicht. Aber wenn es dir wirklich nur um das drucken geht, wäre es nicht auch möglich, in deinem Fall ein entsprechendes Programm, welches RTF druckt, auszuführen? (Das Ausführen geht recht einfach über TProcess, was hier im Forum auch schon öfter erwähnt wurde)
Johannes

JosefKoller
Beiträge: 115
Registriert: Sa 17. Mär 2007, 10:53

Re: RTF Druckkomponente

Beitrag von JosefKoller »

Hallo,

hmmh TProcess??!!
Diese RTF-Komponente in Delphi arbeitet mit Platzhaltern.

Man erstellt eine Vorlagendatei im RTF-format mit eben Text und Platzhaltern. Diese Platzhalter werden dann mit dem Datenbankinhalt gefüllt.

Beispiel Auftragsverwaltung.

Die vorlage würde dann so aussehen









Rechnung Nr.

Pos Stück Bezeichnung E-Preis G-Preis
1

Rechnungspositionen werden in einer Schleife durchlaufen und eben solange einfügt, solange welche in der Datenbank stehen.

Kann man denn sowas auch mit TProcess machen?

Gibt es da irgendwo ein Beispiel?

Besten Dank

Josef

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: RTF Druckkomponente

Beitrag von monta »

Nein, das kann TProcess natürlich nicht. Ich dachte, es geht dir nur darum, fertige RTFs auszudrucken. Die du dann bspw. im Hintergrund hättest an Word übergeben können, so dass sie gedruckt werden.

Ich hab keine Ahnung, wie komplex bspw. deine Vorlagen sind. Aber wenn es nicht wahnsinnig komplex ist, kann man das auch selber basteln.
Ich hab es auch mal soähnlich gemacht. Die Vorlage einfach in OpenOffice erstellt und mit Platzhaltern versehen, sieht dann so aus:
Template.png
Anschließend hab ich das ganze einfach mit den vorher übergebenen Werten ersetzt:

Code: Alles auswählen

function TBilling.SaveBillToFile: boolean;
var BillingFile: TStringList;
    BillingText: string;
begin
  Result := false;
  BillingFile := TStringList.Create;
  try
    BillingFile.LoadFromFile(FTemplateSource);
    BillingText := BillingFile.Text;
    BillingText := StringReplace(BillingText, '[Adresse]', FAddress, []);
    BillingText := StringReplace(BillingText, '[Kundennummer]', FCustomerNumber, []);
    BillingText := StringReplace(BillingText, '[Belegnummer]', FDocumentNumber, []);
//...
    BillingFile.Text := BillingText;
    BillingFile.SaveToFile(FDestinationFile);
  finally
    BillingFile.Free;
  end;
  Result := true;
end;
Ist letztlich primitiv, erfüllt aber bestens seinen Zweck. Je nach Bedarf, kann man auch noch mit vertretbarem Aufwand einige rtf-Formatierungen mit schreiben, wie Schriftgröße, einfache Tabellen und Rahmen und Fett/Kursiv.
Johannes

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: RTF Druckkomponente

Beitrag von Christian »

Warum muss es denn unbeduingt ein RTF report sein ? Warum nimmst du nicht Lazreport ? Bequemer kann mans doch gar nicht mehr haben.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

piper62
Beiträge: 131
Registriert: Sa 5. Apr 2008, 17:57
OS, Lazarus, FPC: Linux (Debian, Xubuntu), MacOS X, MS Win, Android, Web
CPU-Target: 32Bit/64Bit
Wohnort: Ulm

Re: RTF Druckkomponente

Beitrag von piper62 »

Hallo,

da es sich bei einer RTF Datei auch nur um eine ASCII Datei mit Formatanweisungen handelt kann man ohne weiteres die Platzhalter mit Datenbankinhalt austauschen.
Hat Monta ja schön oben demonstriert.

Inzwischen arbeiten wir mit OpenOffice Dateien, geht sehr schön. Muss entpackt (ZIP) werden, dann die content.xml bearbeiten und wieder einpacken.

Hoffe es hilft.

Gruss

creed steiger
Beiträge: 958
Registriert: Mo 11. Sep 2006, 22:56

Re: RTF Druckkomponente

Beitrag von creed steiger »

Ich erzeuge Reports mit PowerPdf und schmeiss den
Druck mit TProcess und Acrobat an.
Funktioniert 1a.

marcov
Beiträge: 1103
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: RTF Druckkomponente

Beitrag von marcov »

creed steiger hat geschrieben:Ich erzeuge Reports mit PowerPdf und schmeiss den
Druck mit TProcess und Acrobat an.
Funktioniert 1a.
Hehe, for jahre (in 2003 oder so) arbeitete ich fuer ein Muehl Firma, und mussten wir eine personalisierte (mit barcode etc) Enquete nach 25000 Kunden senden.

Habe dass mit ein LaTeX template +ein FPC generator gemacht, der ein 1.5 GB PDF erzeugte. (25000*2 seiten, mit mehrere barcodes und corporate Logo's usw) Die habe ich auf ein DVD zur Drucker geschickt, der hatte immerhin gesagt das alles PDF gut wäre. Aber er hatte vergessen das er unselige Limite stellte an die PDF-Groesse :-)

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: RTF Druckkomponente

Beitrag von pluto »

meines Wissens sollte auch TRichView drucken können. Wie gut und wie das geht, weiß ich allerdings nicht.
Aber es sollte gehen.
http://wiki.lazarus.freepascal.org/index.php/RichView" onclick="window.open(this.href);return false;

Es gibt auch im Internet in zahl reichen Delphi Foren Soruce-Code Beispiele wie RTF in HTML umgewandelt werden kann, welches dann mit dem HTMLPanel(heißt die so?) geladen und auch gedruckt(hier bin ich mir auch nicht sicher, aber es müsste gehen) werden könnten

edit:
das er unselige Limite stellte an die PDF-Groesse
ach das PDF Format ist nicht unendlich groß ?
MFG
Michael Springwald

JosefKoller
Beiträge: 115
Registriert: Sa 17. Mär 2007, 10:53

Re: RTF Druckkomponente

Beitrag von JosefKoller »

Hallo Monta,

Dein Vorschlag schaut schon recht gut aus.

Nur, wie hast du den die Steuerung realisiert? Wie die Master-/Detailbeziehung?

Rufst du im
While not ..... eof begin
....
Deine funktion auf?

Wie wird dann einee neue Zeile z. b. bei den Positionen eingefügt?

Ich wollte eigentlich anfangen eine RichEditkomponente zu nehmen. Darin die vorlagen Datei dazustellen und dann die Platzhalter ersetzen. Ist das so üblich oder wie hast du denn das gemacht.#

Besten Dank nochmal

Josef

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: RTF Druckkomponente

Beitrag von Christian »

Nochmal die Frage, warum nimmst du nicht Lazreport ?
Warum machst dus dir so umständlich und fehleranfällig ? Gerade Drucken ist eine sehr schwirige Geschichte da viele Druckertreiber fehlerhaft arbeiten.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

marcov
Beiträge: 1103
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: RTF Druckkomponente

Beitrag von marcov »

pluto hat geschrieben: edit:
das er unselige Limite stellte an die PDF-Groesse
ach das PDF Format ist nicht unendlich groß ?
Das Format schon, aber die Programme die es nutzen nicht :-)

JosefKoller
Beiträge: 115
Registriert: Sa 17. Mär 2007, 10:53

Re: RTF Druckkomponente

Beitrag von JosefKoller »

Hallo,

ich hab mit Delphi FreeReport verwandt. Manchmal war es recht umständlich damit zu arbeiten.

Bin dann beim suchen eben auf diese EkRTF Komponenete gestoßen. Das ding arbeitete bisher einwandfrei.

Ich hab vor rund 2 Jahren mal Lazarus probiert. Da war in Punkto datenbankdruck nicht viel los. Auch die LazReportKomponente steckte noch in den Anfängen.

Jetzt bin ich wieder bei Lazarus gelandet und wollte eben mal abklären, ob es sowas wie besagte RTF_Druckkomponente gibt.

Zur Not, wie geschrieben würd, ich es auch selbst mittels RichEdit oder so probieren.

Noch eine Frage:

Gibt es Komponenten wie z. b. DBDateEdit, also eine DBKomponente mit der man einen Kalender aufblenden und dann das Datum übernehmen kann?

Auch eine DBSpinEdit Komponente vermisse ich.

gibt es sowas?

Danke nochmal.

Josef

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: RTF Druckkomponente

Beitrag von Christian »

Ich benutze Lazreport derzeit in mehreren Programmen, das wichtigste ist dabei wohls Prometheus. Ein ERp System das in Lazarus geschrieben ist und bisher hatte weder ich viel zu meckern noch haben sich die tester die damit bisher in berührung gekommen sind beschwert eher im Gegenteil. Genau deshalb versteh ich den Aufwand den du da treiben willst nicht. Wenn du es vor 2 Jahren zuletzt angefasst hast würde ich es jetzt mal probieren ... RTF dateien zu generieren und über irgendwelche grausligen Wege auszudrucken halte ich jedenfalls für arg übertrieben.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten