Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

"Решение проблемы с потерей табуляции при сохранении Rich Edit в PDF с помощью FastReport"

Delphi , Базы данных , Отчеты

Решение проблемы с потерей табуляции при сохранении Rich Edit в PDF с помощью FastReport

При работе с Rich Edit в Delphi и желании сохранить его содержимое в PDF с помощью FastReport пользователи часто сталкиваются с проблемой потери табуляции (#9). В этом материале мы рассмотрим, как решить эту проблему.

Проблема

Пользователь пытается отправить текст своего Rich Edit в FastReport, чтобы сохранить выходные данные в формате PDF. При использовании события OnGetValue текст отправляется в FastReport, но табуляция (#9) не сохраняется.

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

Подтвержденный ответ

Чтобы сохранить табуляцию при экспорте Rich Edit в PDF с помощью FastReport, можно воспользоваться следующим подходом:

  1. Сохраните содержимое Rich Edit в файл формата RTF, сохранив табуляцию.
redInvoice.Lines.SaveToFile('Invoice - ' + sInvoice + '.rtf');
  1. Откройте сохраненный RTF-файл в RichView-компоненте FastReport.
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
  Stream.Free;
end;
  1. Экспортируйте содержимое RichView в PDF. Для этого можно использовать метод экспорта PDF, например, созданный пользователем.
frxUserDataSet1.RangeEnd := recount;
frxUserDataSet1.RangeEndCount := redInvoice.Lines.Count;
try
  ExportPDF;
  Showmessage('Invoice published.');
except
  Showmessage('Error - Invoice not published.');
end;

Альтернативный ответ

Если по какой-то причине предыдущий подход не подходит, можно рассмотреть другой вариант: напрямую отправить Rich Edit в FastReport, но с использованием специального формата для сохранения табуляции. Для этого можно воспользоваться следующим кодом:

procedure TfrmEmediaInvoice.frxReport1GetValue(const VarName: string;
  var Value: Variant);
begin
  Value := redInvoice.Text;
  if VarName = 'RichEdit1' then
    Value := redInvoice.Text;
end;

В этом примере мы отправляем содержимое Rich Edit в FastReport, используя специальный формат для сохранения табуляции. Важно отметить, что для этого может потребоваться правильная настройка компонента Rich Edit и соответствующего объекта в FastReport.

Заключение

При сохранении содержимого Rich Edit в PDF с помощью FastReport пользователи часто сталкиваются с проблемой потери табуляции. В этом материале мы рассмотрели два подхода к решению этой проблемы: сохранение содержимого Rich Edit в RTF-файл и открытие его в RichView-компоненте FastReport, а также отправка содержимого Rich Edit в FastReport с использованием специального формата для сохранения табуляции. Выбор подхода зависит от конкретных требований и возможностей проекта.

Создано по материалам из источника по ссылке.

Контекст: Статья о решении проблемы потери табуляции при сохранении содержимого Rich Edit в PDF с помощью FastReport в Delphi.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Отчеты ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 13:25:48/0.0056788921356201/1