AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Eine RTF-Datei in mehrere aufteilen

Ein Thema von Progman · begonnen am 31. Mär 2009 · letzter Beitrag vom 1. Apr 2009
Antwort Antwort
Seite 1 von 2  1 2      
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#1

Eine RTF-Datei in mehrere aufteilen

  Alt 31. Mär 2009, 11:29
Hallo, ich habe nach langer Zeit mal wieder ein Problem.
Gegeben ist eine Anwendung, in der in JvRichEdits der Anwender Textvorlagen bekommt und diese nach Belieben bearbeiten kann.
Diese können auf Wunsch im PDF-Format abgespeichert werden. Dazu nutzen wir ein zugekauftes Tool von softExpansion.
Dies funktioniert auch prima bis auf die Tatsache, dass der RTF zu PDF-Konverter aus exakt einer RTF auch nur eine Seite im PDF macht. Das heißt, alles was über den Inhalt einer Seite hinausgeht, verschwindet im Nirwana
Die einzige Möglichkeit, das zu verhindern, wäre: Jede RTF-Datei, deren Inhalt größer als eine A4-Seite ist, in mehrere RTF-Dateien aufzuteilen und diese dann nacheinander dem RTF-Converter übergeben.
Händisch ist das ja nicht schwer. Man selektiert so viel, wie man glaubt, dass es auf eine Seite passt, kopiert es (oder schneidet es aus) in die Zwischenablage, öffnet ein zweites JvRichEdit, fügt den Inhalt da ein und speichert es ab. Das so oft, bis der gesamte Inhalt aufgeteilt ist.
Dies müsste aber nun automatisiert werden, da der User damit nicht konfrontiert werden soll.
Kann man feststellen, wie viele A4-Seiten voraussichtlich eine RTF-Datei benötigt?
Ja, dazu hab ich eine Routine. Aber das Ergebnis ist nur die Seitenanzahl.
Problem ist, die Range (ich nenn das jetzt mal so oder das Rect), die zu einer Seite gehört, zu selektieren? Wenn das gelingt, wäre das Problem gelöst (CopyToClipboard)
Anmerkung: Zeilen zählen und sowas scheidet aus, da der Inhalt in Schriftgröße usw. frei gestaltet werden kann und auch Grafiken enthalten sein können.
Hat da jemand einen Lösungsansatz?
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Eine RTF-Datei in mehrere aufteilen

  Alt 31. Mär 2009, 11:36
Zitat von Progman:
Dies funktioniert auch prima bis auf die Tatsache, dass der RTF zu PDF-Konverter aus exakt einer RTF auch nur eine Seite im PDF macht.
Prima Tool - ein anderes kommt nicht in Frage?

Zum Beispiel Rave - kann auch PDF exportieren, und ist bei neueren Delphi Versionen enthalten.
Ein Richtext-Feld in den Report geworfen, exportieren, fertig ... (mit Fast Reports & Co. geht es natürlich auch).

Cheers,
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#3

Re: Eine RTF-Datei in mehrere aufteilen

  Alt 31. Mär 2009, 11:50
Ein anderes kommt nicht in Frage, ich muss dieses verwenden, da die PDF-Dateien auch bestimmte Voraussetzungen erfüllen müssen, die dieses Tool eben bietet.
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Eine RTF-Datei in mehrere aufteilen

  Alt 31. Mär 2009, 16:20
Hallo Progman,

wenn Du nicht eine ganze Textverarbeitung nachbauen willst, siehst Du erst einmal alt aus.
Das Problem ist ja, daß der vorgegebene Text, je nach Schriftgröße und Schriftart auf Papier eine unterschiedliche Menge Platz einnimmt. Du brauchst also einen Drucksimulator.

Wie wäre es denn mit Word, um den Ausdruck zu simulieren?
Arbeitet dieses PDF-Tool als Druckertreiber?
Dann könntest Du über OLE alle Seiten einzeln ausdrucken.

Gruß
K-H
  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#5

Re: Eine RTF-Datei in mehrere aufteilen

  Alt 31. Mär 2009, 17:18
Das Problem siehst du richtig
Meine ersten Versuche gingen dahin, das JvRichEdit mit SaveToPicture in ein Bild zu rendern. Das ergab dann anhand der Höhe schonmal, ob es mehr als eine Seite wird. Wenn ja, hab ich das Picture.Bitmap einfach in neue Bitmaps kopiert, so dass ich jede Seite als Bitmap hatte. Die könnte ich in den PDF-Konverter importieren. Aber das ist für ein PDF, dass auch sehr starke Vergrößerungen machen kann, ein NoGo. Eine RTF-Datei wird anscheinend als Vektorgrafik umgewandelt und damit die PDF-Seite erzeugt. Denn die lässt sich dann beliebig vergrößern und alle Kanten bleiben gestochen scharf. Daher bleibt mir nur der Weg, aus einem (zu großen) RTF mehrere zu machen. Die Range für eine Seite kann ich ja ermitteln. Ich sehe nur keine Möglichkeit, diesen Bereich zu bestimmen und an dessen Ende den Cursor zu setzen. Denn dann könnte ich alles bis zum Cursor selektieren, ins Clipboard und daraus ne neue Datei machen. Also vom Prinzip her ganz einfach Nur das zu automatisieren, ist wohl nicht so leicht, wenn überhaupt möglich.
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: Eine RTF-Datei in mehrere aufteilen

  Alt 31. Mär 2009, 17:19
Es gibt eine Stelle, die ist prädestiniert um den Seitenumbruch durchzuführen:
innerhalb des RTF zu PDF-Konverter.
Nur der Konverter weiss wirklich, wann genau eine PDF-Seite zuende ist.
Du hast doch sicher den Sourcecode des Konverters gekauft, oder?
Andreas
  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#7

Re: Eine RTF-Datei in mehrere aufteilen

  Alt 31. Mär 2009, 17:23
Zitat von shmia:
Es gibt eine Stelle, die ist prädestiniert um den Seitenumbruch durchzuführen:
innerhalb des RTF zu PDF-Konverter.
Nur der Konverter weiss wirklich, wann genau eine PDF-Seite zuende ist.
Du hast doch sicher den Sourcecode des Konverters gekauft, oder?
Nein, da gibt es keinen Source, nur einige DLLs und andere Dateien, die wir unserer Anwendung beilegen müssen.
Ich habe nur einige *.pas-Files, die alle Schnittstellen zur DLL definieren. Leider....
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#8

Re: Eine RTF-Datei in mehrere aufteilen

  Alt 31. Mär 2009, 19:10
Hallo progman,

Da Du augenscheinlich nicht scharf darauf bist Word als Vermittler zu nutzen (oder es nicht kannst/darfst) muß ich mal spekulieren.
Besteht die Möglichkeit einen Reportgenerator mit dem RTF-File zu füttern?
Oder falls Du ganz abgebrüht bist mach die Druckersimulation mit Hilfe von Printers selber. Da ich beim Ausdrucken immer Probleme mit dem Papierformat hatte, würde ich Dir das nicht ruhigen Gewissens empfehlen.
Aber vielleicht gibt es dafür irgendwo eine Komponente(?)

Gruß
K-H

Nur so am Rande: PDF kennt auch verschiede Papierformate. Wenn Dein Konverter nach einer DIN A4-Seite die Arbeit einstellt, klingt das sehr nach Crippleware.
  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#9

Re: Eine RTF-Datei in mehrere aufteilen

  Alt 31. Mär 2009, 19:24
Bei Übergabe des RTF-Files habe ich ja vorher den Converter configuriert und als Format A4 festgelegt. Das klappt ja auch alles prima. Nur habe ich (noch) keine Möglichkeit, der Import-Function mitzuteilen, dass sie evtl. mehrere Seiten machen soll. Daher macht sie nur eine neue Seite in der PDF-Datei und der Rest (der nicht mehr auf die Seite passt) wird unterschlagen
Deshalb wollte ich die RTF, falls sie zu groß ist, in mehrere RTFs aufteilen und die nacheinander übergeben. dann würde es ja klappen. Das Problem ist eben nur, etwa so viel zu selektieren, wie ein Seiteninhalt ausmacht um damit dann über das Clipboard ein neues RTF zu machen.
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#10

Re: Eine RTF-Datei in mehrere aufteilen

  Alt 1. Apr 2009, 00:00
Hallo,

schau Dir doch mal RichEdit: Variable Druckfunktion in Flockes Garage an, denke das Dir das weiter helfen könnte.

Zitat von Flocke:
...Der Rückgabewert ist der Index des ersten Zeichens, dass nicht mehr in das Ausgaberechteck passte und somit nicht mehr ...
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz