| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > iText html внутри cdata tag |
| Автор: DashkaTk 15.9.2009, 18:41 |
| Здравствуйте, господа разработчики Очень нуждаюсь в помощи. Суть проблемы предисловие надо получить pdf из xml с четко установленными стилями в конечном файле (например, текс из тега в xml <agenda>, в pdf должен быть смещен на 250 пикселей + быть подчеркнутым и еще целая корзинка настроек) общее описание реализации на входе у меня xml из этого xml генерирую нужный мне промежуточный xml с помощью xslt далее описываю тагмап на этот xml (xml содержит теги по типу text_bold_10 и так далее) с помощью iText получаю pdf на выходе Все зашибись, все хорошо работает Но! тут оказывается, что тег <agenda> может содержать тег <!CDATA[[]]>, который в свою очередь, содержит html код, и который, в конце концов, должен быть в pdf. Тобишь, <!CDATA[[<table border='1'><tr><td>text</td></tr></table>]]> должно быть табличкой... текущая реализация в xslt запрещаю ескейпить символы < > и в тагмап я описываю основные теги (b, u, i), но описывать весь список тегов — это, простите, извращение Натолкните на правильное решение, даже если оно подразумевает все переписать(не хотелось, правда) есть мысль — заменить схему xml — xml — pdf на xml — html — pdf и в качестве хэндлера в iText использовать его SAXmyHtmlHandler в общем, буду премного благодарна и должна по гроб жизни |
| Автор: bvfalcon 20.9.2009, 17:56 |
| Расскажите чуть подробнее о предыстории этого XML. XML, как известно, формат для описания чего угодно и можно придумать сотню способов преобразования XML2PDF. Интересно именно вот что: закреплена ли структура xml в DTD (XSD), описывается еще как-то или вообще произвольная. |
| Автор: DashkaTk 21.9.2009, 10:55 | ||||||
генерится сторонним сервисом, к нему доступа не имею, да и незачем
нужно именно iText, уже много на этом решении повязано, в том числе и не моей работы
не произвольная, есть xsd |
| Автор: bvfalcon 21.9.2009, 19:31 |
| Хоть я и не услышал, чего хотел, но все же попробую помочь. То, что на iText много повязано, не значит ровным счетом ничего. В том плане что никак не помешает использовать библиотеку, отличную от iText. Хотя что там, iText - одна из самых центровых библиотек для работы с PDF в Java. Попробуйте использовать JasperReports для преобразования XML в PDF. Кстати тоже использует iText. Создаете нужную форму-отчет в iReport, из своей программы берете скомпилированный файл отчета, передаете ему JRXMLDataSource (которому скормите ваш XML) и генерите PDF. А то, чем вы сейчас занимаетесь - это прошлый век велосипедостроения. |
| Автор: DashkaTk 21.9.2009, 23:06 | ||
учту, точнее оценю время на рефакторинг и решу, что мне дороже обойдется ) по поводу JasperReports: сейчас основная проблема в том, что приезжает xml, содержащий html в полях с текстом то есть есть какие то незыблемые настройки к основным тегам и произвольный html в текстах (я понимаю, вы сейчас скажете, ничего не мешает это переделать, но важно какой именно подход меньше требует времени) как JasperReports это решает, насколько он сложен в освоении? я конечно могу прогуглить, но лучше еще и спросить ) |
| Автор: DashkaTk 24.9.2009, 14:53 | ||
| покурила доки по jasperReport теперь понятно к чему был вопрос
Нет, он мне не подходит Он больше для манипуляции и упорядочивании полученных данных (в большинстве случаев аля селект фром датабэйз), у меня же упор на всякие рюшики, приблудки и красивости. Это может быть бланк приглашения, который приехал в xml, который содержит куча атачей с картинками, табличками, разноуровневым шрифтом. да, jasper может понимать html при простановке ему соответствующего атрибута, но как отзываются специалисты, половина не рендерится исправьте меня, если я не права в какой-то букве |