Экспорт Birt в PDF не переносит длинные строки - PullRequest
1 голос
/ 01 апреля 2019

Мой предварительный просмотр отчетов в порядке.Но теперь мне нужно экспортировать в pdf ... и у меня возникла проблема: содержимое некоторых ячеек усекается до значения столбца.

Например, в 1 ячейке должно отображаться "BASELINE"... в предварительном просмотре все в порядке ... но в pdf отображается "BASEL".

Я искал решение целый день и ничего не нашел ...

Конечно: я не хочу вписывать ширину столбца в длину этого слова "BASELINE", потому что содержимое динамическое ... Вместо этого я хочу зафиксировать ширину столбца, а затем ячейка должна отображатьсячто-то вроде этого: BASEL INE

Есть идеи?

Заранее спасибо (немного отчаялся ...)

Ответы [ 2 ]

0 голосов
/ 10 апреля 2019

У меня была такая же проблема.Я нашел очень хорошую тему по этому поводу: http://developer.actuate.com/community/forum/index.php?/topic/19827-how-do-i-use-word-wrap-in-report-design/?s=173b4ad992e47395e2c8b9070c2d3cce

Это разделит строку на заданное количество символов, которое вы хотите:

Функция для добавления в functions.js(например).Чтобы вы знали, я создал папку в своем проекте отчета: одну для отчетов, одну для шаблона, одну для библиотек, другую для ресурсов, я добавил этот js-файл в папку ресурсов.

/** 
* Format a long String to be smaller and be entirely showed
*
*@param longStr 
*             the String to split
*@param width
*               the character number that the string should be 
*
*@returns the string splited
*/
function wrap(longStr,width){ 
    length = longStr.length; 
    if(length <= width) 
        return longStr; 
    return (longStr.substring(0, width) + "\n" + wrap(longStr.substring(width, length), width)); 
 } 

Вы должны будете добавить этот js-файл в отчеты: в свойствах -> Ресурсы -> Javascript файлы

enter image description here

Это работает для меня.

Примечание: вы можете добавить эту функцию в свои данные напрямую, если вам нужно только один раз ...

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

0 голосов
/ 01 апреля 2019

Вы должны установить специальный параметр PDF-эмиттера:

PDFRenderOption options = new PDFRenderOption();
options.setOption(PDFRenderOption.PDF_HYPHENATION, true);

Это если вы интегрировали BIRT в свою Java-программу.Для сервлета просмотра можно также установить такие параметры, AFAIK, но я не знаю как;может быть по URL или с использованием переменных окружения.

...