Hallo,
in einem WPRichText sind Textfelder, die mit WPRichText.InputMergeField eingefügt wurden.
Weiterhin gibt es normalen Text.
Einzelne Textfelder sind fett formatiert und haben eine größere Schrift.
Dieses WPRichtext wird als RTF-Text weggespeichert mit s := WP.SaveToString('RTF',false);
und s zeigt im Debugger
Code
'{\rtf1\ansi\deff0\uc1\ansicpg1252\deftab720{\fonttbl{\f0\fnil\fcharset1 Arial;}{\f1\fnil\fcharset2 Wingdings;}{\f2\fnil\fcharset2 Symbol;}{\f3\fnil\fcharset3 Segoe UI Emoji;}}{\colortbl\red0\green0\blue0;\red255\green0\blue0;\red0\green128\blue0;\red0\green0\blue255;\red255\green255\blue0;\red255\green0\blue255;\red128\green0\blue128;\red128\green0\blue0;\red0\green255\blue0;\red0\green255\blue255;\red0\green128\blue128;\red0\green0\blue128;\red255\green255\blue255;\red192\green192\blue192;\red128\green128\blue128;\red0\green0\blue0;}\wpprheadfoot1\paperw4875\paperh4715\margl0\margr0\margt0\margb0\headery254\footery254\ftnbj\sftnbj\sftnrstcont\nocolbal\sftnnar\saftnnar\fet0\endnhere\sectdefaultcl{\*\generator WPTools_9.0-PRM;}{\plain\f0\fs28\cf0{\field{\*\fldinst{MERGEFIELD Formularfeld_1-42}}{\*\wpfldparam{Kundenberatungs GmbH}}{\fldrslt{\f0\fs40\cf0\b\i Kundenberatungs GmbH\f0\fs28\cf0\b0\i0}}}\par'#$D#$A'\plain\f0\fs28\cf0{\field{\*\fldinst{MERGEFIELD Formularfeld_2-46}}{\*\wpfldparam{Kundenweg 12}}{\fldrslt{Kundenweg 12}}}\par'#$D#$A'\pard\plain\plain\f0\fs28\cf0\par'#$D#$A'\plain\f0\fs28\cf0{\field{\*\fldinst{MERGEFIELD Formularfeld_3-47}}{\*\wpfldparam{98765}}{\fldrslt{\f0\fs38\cf0\b 98765\f0\fs28\cf0\b0}}}\li0\fi0\ri0\sb0\sa0\ql\vertalt\f0\fs38\cf0\b \f0\fs28\cf0\b0{\field{\*\fldinst{MERGEFIELD Formularfeld_4-48}}{\*\wpfldparam{Kundendorf}}{\fldrslt{\f0\fs38\cf0\b Kundendorf\f0\fs28\cf0\b0}}}\par'#$D#$A'}}'
Da sind also die Felder und ihre Schriftgrößen drin.
Num erzeuge ich in einem anderen WPRichText Textboxen und möchte da diesen RTF-Inhalt reinbekommen
Code
procedure TTextForm.WPRichText1GetSpecialText(Sender: TObject; Par: TParagraph;
posinpar, pagenr: Integer; Kind: TWPPagePropertyKind;
var IsLastPage, UseThis: Boolean; var SpecialText: TWPRTFDataBlock);
var
RTFData: TWPRTFDataBlock;
txtobj: TWPTextObj;
aName: string;
X, Y, b, h: Integer;
begin
if Kind = wpIsHeader then
begin
aName := 'HEADER#' + inttostr(pagenr);
SpecialText := WPRichText1.HeaderFooter.Get(wpIsHeader, wpraNamed, aName);
if SpecialText.Empty then
begin
X := 100;
Y := 100;
b := 5000;
h := 3000;
RTFData := nil;
txtobj := WPRichText1.TextObjects.InsertTextBox(b, h, RTFData,
SpecialText.FirstPar);
txtobj.PositionMode := wpotPage;
txtobj.RelX := X;
txtobj.Rely := Y - WPRichText1.Header.MarginHeader;
txtobj.Frame := [wpframeFine];
if RTFData <> nil then
begin
//den oben gezeigten RTF-String hier laden
RTFData.RtfText.LoadFromString(s, 'RTF');
end;
end;
UseThis := true;
end; // is Header
end;
Alles anzeigen
Warum gehen die Formatierungen verloren?
Ciao
Stefan