Создание динамического PDF в Java

0

Это не дублирующий вопрос. Я опубликовал этот вопрос и попробовал много вариантов.

У нас есть веб-страница, в которой пользователь должен иметь возможность вводить данные в текстовые поля, текстовые области, изображения, а также редакторы Rich Text. Эти данные должны быть заполнены в существующем отчете, например, заполнение пробелов.

Я смог достичь функциональности, используя Apache FOP, когда пользовательский ввод представляет собой простой текст. Но Apache FOP не работает, если пользовательский ввод - Rich Text (html-формат). FOP не будет отображать html, и он просто подталкивает html-код (ex: <strong> XYZ/strong>) в pdf. Я попытался использовать iText, но вот здесь проблема заключается в том, что даже если iText поддерживает рендеринг html в pdf, он не может помещать изображения, которые включены в теги <img>, в файл pdf.

Я могу попытаться создать pdf файл, используя iText-блок-блок за блоком, но проблема заключается в том, что богатые текстовые данные, введенные пользователем, не могут быть встроены между кодом, так как построение pdf-блока по блоку и html в pdf не может быть сделано вместе в iText. Или, по крайней мере, это то, что я думаю по моему опыту.

Есть ли другой способ создать PDF файл из java с изображениями, богатым текстовым рендерингом, так как есть верхние и нижние колонтитулы?

Теги:
pdf

3 ответа

0

Я не пытаюсь продавать или продвигать этот продукт. Этот api фактически решил нашу проблему, поэтому подумал об этом, так как это могло бы помочь другим разработчикам. сообщите мне, если это противоречит вашей политике.

Я наконец понял, что решение для моего требования не может быть достигнуто ни с FOP, iText, Aspose, Flying Saucer, JODConverter.

Я нашел платный api Sferyx. Этот api позволяет отображать очень сложный html файл, сохраняя при этом оригинальный стиль. Он также отображает изображения, включенные в html. Мы все еще изучаем этот api и опубликуем другие функции, которые предоставляет api.

0

Я работаю в качестве разработчика социальных медиа для Aspose и добавляю богатый текст в поле формы в файле PDF, вы можете попробовать наш Aspose.Pdf для Java API. Проверьте следующий пример кода:

// Open a PDF document                                                                         
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document("c:\\data\\input.pdf");      

//Find Rich TextBox field using Field Name                                                     
RichTextBoxField textBoxField1 = (RichTextBoxField)pdfDocument.getForm().get("textbox1");      

//Set the field value                                                                          
textBoxField1.setValue("<strong> XYZ </strong>");                                              

// Save the modified PDF                                                                       
pdfDocument.save("c:\\data\\output2.pdf");   
  • 0
    Спасибо за предложение. Будет ли Aspose.pdf отображать HTML с тегами <img>? Я столкнулся с этой проблемой с iText. Мне удалось сделать большой HTML-файл на 7 страниц в формате PDF с помощью iText. Но iText не смог разместить изображения в html в pdf. Я обязательно изучу Aspose.pdf, но я был бы признателен, если бы вы могли дать ответы на некоторые из моих вопросов. Могу ли я создать PDF-файл с данными, возвращенными из текстового редактора? Может ли он отображать теги <img> на изображениях? Заранее спасибо.
  • 0
    Могу ли я добавить форматированный текст или изображения между двумя абзацами или, где это возможно, в существующий PDF-файл с Aspose.pdf?
0

iText предоставляет возможность конвертировать HTML-данные в Pdf. Ниже приведен фрагмент:

 Lets assume the html data is available as Input Stream (If its a String then we can convert it to InputStream using Apache Commons - IOUtils)
 InputStream htmlData; // Html Data that needs to converted to Pdf

 ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
 Document document = new Document();
 PdfWriter pdfWriter = PdfWriter.getInstance(document, outputStream);
 document.open();

 // convert the HTML with the built-in convenience method
 XMLWorkerHelper.getInstance().parseXHtml(pdfWriter, document, htmlData);

 document.close();
// outputStream now has the required pdf data
  • 0
    Спасибо за ответ. Я попробовал этот подход. но, как я уже сказал, он не будет отображаться, если в html есть теги <img>. Место, где изображение должно появиться в PDF, будет пустым пространством.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню