Работа с документами в Java
CLI Spring Shell приложение
для работы с документами:

  • Практика + готовый шаблонный код для вашего приложения
  • Поддержка в специальной группе Telegram
  • Время прохождения не ограничено, материалы даются навсегда
Открытое занятие

DocJava

Spring Shell CLI
Документы XML, PDF, Excel

Участников:
0
git clone https://github.com/javaOPs/docjava.git
  • Создание консольного Spring Shell приложения
  • Создаем usersWithMeals.xml данные пользователей с едой и схему usersWithMeals.xsd
  • Реализация xsd: Validate XML file against XSD (XML Schema)
    Commands:
    xsd: Validate XML files against XSD (XML Schema)
    jaxb: Process XML file via JAXB
    stax: Process XML file via StAX
    xpath: Evaluate XPath against XML
    xslt: Transform XML with XSLT
    pdf-fop: Convert XML to PDF via Apache FOP
    iText: Convert XML to PDF via iText PDF
    excel-poi: Convert XML to Excel via Apache POI
    jxls: Convert XML to Excel via Apache Jxls
    html2pdf: Convert HTML to PDF via iText pdfHTML
    Parameters:
    -i (input) Input file
    -o (output) Output file
    -s (schema) XSD schema file (for xsd)
    -e (exp) XPath expression (for xpath)
    -x (xsl) XSL transformation file (for xslt)
    -e (email) User email (for stax)
    -f (filter) Filter params: startDate=2023-01-30,endDate=2023-01-30,startTime=11:00,endTime=19:00
    -t (template) Transform template file (for pdf/excel transformation)
  • Генерируем из XSD схемы Java-классы
  • JAXB unmarshalling (десериализация)
  • Тестирование
  • Обработка Filter params
  • JAXB marshalling (сериализация)
  • Ищем пользователя с переданным email, фильтруем и маршализуем
  • Тестируем StaxUtil с параметризацией
Вывод найденного "user@yandex.ru": stax.xml
  • Базовая реализация XSLT
  • XSLT 2.0: форматирование время и даты
  • Вызов методов Java из xslt (Saxon)
  • Добавляем параметры фильтра
Вывод: xslt.html
  • Преобразуем XML в XSL-FO (XSLT)
  • Преобразуем XSL-FO в PDF (Formatting Objects Processor)
Вывод: fop.pdf
  • Создание и вывод PDF документа
  • Регистрация и установка шрифтов
Вывод: iText.pdf
  • Вывод пользователей в отдельные вкладки (excel sheet)
  • Обработка паттерна ${простая_подстановка_значения}
  • Обработка паттерна \{требуется_модификация_страницы}
  • Добавляем цвет
  • Рефакторинг Util классов
Шаблон: poiTemplate.xlsx
Вывод: poi.xlsx
  • Подготовка к реализации
  • Базовая реализация на основе шаблона
  • Кастомизация: добавляем цвет
Шаблон: jxlsTemplate.xlsx
Вывод: jxls.xlsx
Ввод: users.html
Вывод: users.pdf