Генерация pdf-документа из объекта json

#java #pdf #servlets #spring-mvc #itext

#java #PDF #сервлеты #spring-mvc #itext

Вопрос:

У меня есть объект json, который на самом деле представляет собой arraylist объектов, ранее преобразованных в json.

Что я хотел бы сделать, так это создать в моем PDF-документе структуру, подобную таблице, взяв несколько полей объекта и сопоставив их со столбцом, найденным в таблице в формате pdf.

Каков самый быстрый способ, которым я могу это сделать?Или какие библиотеки являются общими для разработчиков Java для отображения pdf.

Мой проект — это веб-проект, использующий spring mvc. Интересно, есть ли способ сгенерировать pdf с помощью @ResponseBody, очевидно, нет, я нашел несколько интересных библиотек, среди которых jasper и fop. Но все они, похоже, используют xml, есть ли способ преобразовать POJO в записи в формате pdf?

Когда я использовал php, многие разработчики использовали библиотеку fpdf, это было довольно просто

Я нашел этот отличный учебник :

http://www.mkyong.com/spring-mvc/spring-mvc-export-data-to-pdf-file-via-abstractpdfview/

Но у меня возникли проблемы с поворотом всех моих страниц в альбомную ориентацию.

Я пытался :

 document.setPageSize(PageSize.LETTER.rotate());
  

Но это поворачивает только последнюю страницу.

Комментарии:

1. Не уверен насчет части Spring, но в Java у вас есть iText как «библиотека» PDF. Вы взглянули на это?

2. @BalusC Я просматриваю его, пока мы говорим. mkyong.com/spring-mvc/… Я оставлю вопрос / комментарии, кто-нибудь может наткнуться на это. Но также ищу умные идеи от более опытных разработчиков

3. Похоже, вы уже нашли ответ 🙂 Mkyong.com в целом это хороший ресурс.

4. Что касается вашей новой проблемы, я думаю, что лучше изложить ее в совершенно новом вопросе, поскольку это совершенно не связано с «Генерацией PDF-документа из объекта JSON» с тегами servlets , spring-mvc и т.д. Вы уже нашли ответ на первоначальный вопрос. Не используйте вопрос повторно для чего-то совершенно другого. Просто задайте новый вопрос «Как повернуть все страницы в iText?» с помощью java , itext alone.

Ответ №1:

Вы можете преобразовать свой JSON в XML, используя XML-класс из json.org а затем используйте какой-нибудь пример из Apache FOP для построения преобразования XSL, которое приведет к получению PDF.

Ответ №2:

Переопределить защищенный метод newDocument;

 protected Document newDocument() {
    final float margin = 30.0f;
    return new Document(PageSize.A4.rotate(), margin, margin, margin,
            margin);
}