#html #itext
#HTML #itext
Вопрос:
Может ли itext конвертировать html в pdf. Не весь экран, а что-то вроде этого: на экране есть поле свободной формы, в котором пользователь может ввести что-то вроде этого предложения, заключенного в HTML-теги. Это поле свободной формы, в котором необходимо выделить (выделенный жирным шрифтом тег здесь) важные вещи жирным шрифтом (завершающий жирный тег здесь), но ничего больше жирным шрифтом. Мне нужно будет получить эту информацию с экрана в том виде, в каком она была введена, и мне нужно создать отчет, который будет включать ее, но должен выглядеть так: это поле свободной формы, в котором важные данные выделены жирным шрифтом, но больше ничего не выделено жирным шрифтом. Есть ли у itext что-то, что делает это?
Ответ №1:
В старых версиях itext вы можете использовать HTMLWorker, но теперь он устарел. Теперь вы должны использовать класс XMLWorkerHelper и его метод parseXHtml.
try {
Document document = new Document(PageSize.LETTER);
PdfWriter pdfWriter = PdfWriter.getInstance
(document, new FileOutputStream("c://test.pdf"));
document.open();
document.addTitle("test iText");
XMLWorkerHelper worker = XMLWorkerHelper.getInstance();
String str = "<html><head></head><body>"
"<h1>This is a title</h1>"
"<p>This is a paragraph</p>"
"</body></html>";
worker.parseXHtml(pdfWriter, document, new StringReader(str));
document.close();
System.out.println("You should find you PDF in c:");
}
catch (Exception e) {
e.printStackTrace();
}
Надеюсь, это поможет!
Ответ №2:
Я попробовал это некоторое время назад, и я должен сказать, что это не лучший вариант для преобразования PDF в HTML. Сначала я подумал, что мой PDF-файл был плохо отформатирован из-за CSS, но даже без CSS он выглядел плохо. Поэтому лично для меня я бы сказал, что iText конвертирует HTML в PDF, но его поддержка таблиц стилей сомнительна. Опять же, я могу ошибаться из-за недавних обновлений.