Crystal Reports портит Rich Text - PullRequest
5 голосов
/ 29 июля 2011

У меня есть строка, которая сохраняется как форматированный текст в поле SQL, поэтому перед ним много символов, например ...

{\ rtf1 \ ansi \ ansicpg1252 \ deff0 \deflang1033 {\ fonttbl {\ f0 \ fswiss \ fprq2 \ fcharset0 Calibri;} {\ f1 \ fnil \ fcharset0 Verdana;}} {\ colortbl; \ red0 \ green0 \ blue255;} \ viewkind4 \ uc1 \ pard \ sa200 \ sl276 \slmult1 \ f0 \ fs22 Бла-бла-бла \ пар

Я передаю это в Crystal Reports 11.5 в качестве поля параметра, поэтому тип данных - строка.Затем я просто отображаю его прямо, перетаскивая параметр в отчет.Интерпретация устанавливается в RTF также на вкладке абзаца настроек форматирования для этого.

Моя проблема заключается в том, что он удаляет теги форматирования, но искажает текст.Он случайным образом искажает слова и вставляет символы, такие как буква «i», в слова случайным образом, он также помещает некоторые случайные буквы на заднем плане позади других слов, создавая впечатление, будто они были напечатаны вручную, если это имеет смысл, просто заставляет слово выглядетьнечитаемый и жирный, как кто-то печатал на нем с помощью пишущей машинки.

Я попытался установить новый текстовый объект и затем поместить в него параметр расширенного текста для отображения, но затем он не удаляет / не выполняет никаких тегов форматирования расширенного текста.

Что дает?Очевидно, что он может делать форматированный текст, поскольку удаляет теги, но как обстоят дела со случайным i, вставляемым в слова, и несколькими экземплярами перемешанного текста над другими словами?

1 Ответ

1 голос
/ 16 сентября 2011

К сожалению, я еще не использовал 11.5 ... но попробуйте ...

Поле формата> вкладка «Абзац»> Интерпретация текста> Текст RTF

Если текст перекрывается, то вы можете заменить следующий набор элементов управления из вашего текста RTF. Он должен работать правильно и не перекрываться.

data = data.Replace(@"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fprq2\fcharset0 Calibri;}{\f1\fnil\fcharset0 Verdana;}} {\colortbl ;\red0\green0\blue255;} \viewkind4\uc1\pard\sa200\sl276\slmult1\f0\fs22 Blah Blah Blah \par", string.Empty);
...