Я хочу написать динамический текст вертикально на правой стороне каждой страницы в PDF-документе, созданном с помощью Birt (2.5.2)
Это приводит меня к двум проблемам, которые, возможно, могут быть решены независимо:
- Писать текст по вертикали
- Поместите это на каждую страницу с правой стороны (верхний и нижний колонтитулы мне там не помогут)
Для задачи 1)
Я не смог найти способ написания текста по вертикали, поэтому я решил поместить свой текст в JLabel, сделать поворот на 90 градусов, записать изображение в ByteArrayOutputStream и использовать byteArray для добавления динамического изображения в мой отчет.
=> Это уже работает, если есть простое трехстрочное решение, о котором я не думал, я выслушаю причину:)
Для задачи 2)
В связи с тем, что верхний и нижний колонтитулы не могут использоваться для изображения / текста справа или слева, мой подход состоял в том, чтобы использовать фоновое изображение и поместить его вправо.
Проблема в том, что фоновое изображение в Birt может быть только URL или встроенным изображением
Чтобы использовать мой сгенерированный byteArray, мне нужно использовать динамическое изображение.
Так что сейчас я могу думать только об одном возможном решении: сохранить сгенерированное изображение во временную папку с уникальным URL, добавить это изображение в качестве фонового изображения и затем удалить его.
Но я думаю, что должно быть более простое решение.
==> ОБНОВЛЕНИЕ 1
Я создал макет из двух столбцов, чтобы добавить мое динамическое изображение с правой стороны. В моем отчете максимум пять страниц, поэтому я помещаю в него изображения пять раз с разрывом страницы перед каждым изображением. Это работает, и результат, как и ожидалось ... с новой проблемой осталось:
В некоторых условиях отчет имеет 3 или 4 страницы, поэтому мне нужно скрыть последние изображения. Я могу получить количество страниц в конце отчета в первом столбце с помощью «reportContext.getPageVariable ('pageNumber')» и сохранить его в своей собственной переменной отчета. Каждое из пяти изображений получает номера от 1 до 5 и условие скрытия, если число больше, чем номер моей последней страницы.
Теперь мне нужно правильное место, где я получу свою страницу. Номер:
- При рендеринге последнего элемента в первом столбце получается правильное число, но оно устанавливается позже, чем я использую его во втором столбце
- При рендеринге строка всегда возвращает 1, но она устанавливается перед использованием во втором столбце
- Добавление второй строки вернет правильный номер страницы, но будет установлено позже, чем я использую его во втором столбце
Кто-нибудь знает, как это сделать?
http://eclipse.org/birt/phoenix/deploy/reportScripting.php
==> ОБНОВЛЕНИЕ 1 КОНЕЦ