#java #pdf-generation #itext
#java #генерация pdf #itext
Вопрос:
Я использую java i text для генерации pdf. Некоторые данные в моем pdf взяты из html. Я использую HTMLWorker.parseToList
для его создания.
Моя проблема в том, что он игнорирует цвет фона, который записан внутри html-тегов. Есть идеи, почему? Как я могу это решить?
Заранее спасибо.
Комментарии:
1. Какую версию iText вы используете? Как вы настраиваете цвет фона?
2. @Mark Storer: я использую itext 5.0.6 , и я не устанавливаю фон, текст, который я хочу создать в pdf, — это текст, который я получаю из текстового редактора tinymce.
3. Хорошо… позвольте мне попробовать еще раз: как определяется цвет фона в первую очередь?
4. @Mark Storer: Фон определяется следующим образом: «background: #ff9900;» . Я не могу контролировать, как он определяется — текстовый редактор генерирует его автоматически.
Ответ №1:
Пятнистая поддержка CSS снова поражает.
В настоящее время iText не поддерживает backgroundcolor
стиль. Однако он поддерживает bgcolor
атрибут, а атрибуты и стили отображаются в одно и то же пространство имен.
Поэтому, если вы выполняете XSLT входящий HTML-код, вы можете добавить соответствующий атрибут bgcolor или просто изменить строку стиля на bgcolor
.
Некрасиво, но эффективно.
Предполагается, что код преобразования iText в HTML-> PDF получит серьезное обновление в следующем выпуске. Основа была заложена в выпуске 5.0.6, хотя я пока не видел никаких изменений в коде, которые действительно улучшили бы результат.
Комментарии:
1. спасибо за вашу помощь. я заменил все версии «backgroundcolor» в своем html-коде и изменил его на «bgcolor» , но у меня это все еще не работает — я не вижу фона в сгенерированном pdf.. Есть идеи?
2. Я попробовал только этот текст, и он также не сработал : text = «<span style=»bgcolor: #ffff00;»> Выделенная информация</span>»; «я что-то делаю н е так? как я должен это нап исать? спасибо.
3. Единственный оставшийся реальный вариант — получить исходный код и выполнить его пошаговое выполнение. Удачной охоты.
4. По-прежнему нет поддержки цвета фона 🙂
Ответ №2:
Он работает с bgcolor при использовании в качестве прямого атрибута (но не в атрибуте style с «background-color»)
<table border="1" cellpadding="2">
<tr bgcolor="#C0C0C0">
<td><b>Gray Header</b></td>
<td><b>Second header</b></td>
</tr>
<tr>
<td style="color:green">Green text</td>
<td bgcolor="#FFC0C0">Red background</td>
</tr>
</table>
Ответ №3:
Я попробовал приведенный ниже обходной путь, и он отлично работает для меня.
.tr-bg{
background-color: #D3D3D3;
}
И используйте этот класс для требуемого элемента dom.