RTF Druckkomponente
-
- Beiträge: 115
- Registriert: Sa 17. Mär 2007, 10:53
RTF Druckkomponente
Hallo,
gibt es in Lazarus eine Druckkomponente, die via RTF-Dateiformat arbeitet (analog EkRTF in Delphi).
Danke
Josef
gibt es in Lazarus eine Druckkomponente, die via RTF-Dateiformat arbeitet (analog EkRTF in Delphi).
Danke
Josef
-
- 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
Nein !
ralli
ralli
Pentium 4 - 2GB - Debian Lenny - Gnome 2.22.3 - Nvidia 8600 GT - FPC 2.2.2 - Lazarus 0.9.26 - GTK2
-
- 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
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
-
- Beiträge: 115
- Registriert: Sa 17. Mär 2007, 10:53
Re: RTF Druckkomponente
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
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
-
- 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
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: Anschließend hab ich das ganze einfach mit den vorher übergebenen Werten ersetzt:
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.
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: 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;
Johannes
-
- 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
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/
-
- 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
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
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
-
- Beiträge: 958
- Registriert: Mo 11. Sep 2006, 22:56
Re: RTF Druckkomponente
Ich erzeuge Reports mit PowerPdf und schmeiss den
Druck mit TProcess und Acrobat an.
Funktioniert 1a.
Druck mit TProcess und Acrobat an.
Funktioniert 1a.
-
- 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
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.creed steiger hat geschrieben:Ich erzeuge Reports mit PowerPdf und schmeiss den
Druck mit TProcess und Acrobat an.
Funktioniert 1a.
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

-
- 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
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:
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:
ach das PDF Format ist nicht unendlich groß ?das er unselige Limite stellte an die PDF-Groesse
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 115
- Registriert: Sa 17. Mär 2007, 10:53
Re: RTF Druckkomponente
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
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
-
- 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
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.
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/
-
- 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
Das Format schon, aber die Programme die es nutzen nichtpluto hat geschrieben: edit:ach das PDF Format ist nicht unendlich groß ?das er unselige Limite stellte an die PDF-Groesse

-
- Beiträge: 115
- Registriert: Sa 17. Mär 2007, 10:53
Re: RTF Druckkomponente
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
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
-
- 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
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/