Delphi - FastReport发送richEdit的内容



我已经尝试将我的富编辑文本发送到FastReport,以便我可以将输出保存为PDF。

我使用了OnGetValue

procedure TfrmEmediaInvoice.frxReport1GetValue(const VarName: string;
var Value: Variant);
begin
value := redInvoice.Text;
end;

问题是它没有保留选项卡#9。

有人能告诉我打印或导出富编辑内容到PDF的正确方法吗?由于

我成功地导出了带有自定义制表符间距的格式化富编辑组件的内容。

在FastReports中,我使用了tfrxRichView框。这个问题是,当你通过OnGetValue事件将它发送给FastReports时,它会失去自定义的制表符间距。

我通过将我的Rich Edit的内容保存到。rtf文件

来解决这个问题
redInvoice.Lines.SaveToFile('Invoice - ' + sInvoice + '.rtf');

然后我在FastReports tfrxRichView中打开。rtf文件。

RichView := TfrxRichView(frxReport1.FindObject('Rich1'));
if RichView = nil then
Exit;
Stream := TMemoryStream.Create;
try
Stream.LoadFromFile('Invoice - ' + sInvoice + '.rtf');
SetLength(Str, Stream.Size);
Stream.Read(Str[1], Stream.Size);
RichView.RichEdit.Text := Str;
finally // wrap up
Stream.Free;
end;    // try/finally

最后,我把它导出为PDF格式。"ExportPDF"是保存冗长的导出代码的方法。

frxUserDataSet1.RangeEnd := recount;
frxUserDataSet1.RangeEndCount := redInvoice.Lines.Count;
try
ExportPDF;
Showmessage('Invoice published.');
except
showmessage('Error - Invoice not published.');
end;

是的,你需要在FastReports的MasterData部分使用frxUserDataSet。

最新更新