Интегрируйте iText в Spring Boot для реализации замены контента на основе шаблонов PDF.
Интегрируйте iText в Spring Boot для реализации замены контента на основе шаблонов PDF.

🤞Интегрируйте iText в Spring Boot для реализации замены контента на основе шаблонов PDF.🤞

  • В практических приложениях нам часто необходимо генерировать динамический контент. PDF файлы, а не просто статический контент. Распространенный подход заключается в использовании PDF Шаблоны, которые закрепляют статические части в шаблоне, а затем динамически заменяют их содержимое во время выполнения. В этой статье объясняется, как Spring Boot 项目Центральная интеграция iText библиотека и на основе PDF Шаблоны выполняют замену контента для создания динамического контента. PDF документ.

🎈 Добавить зависимости

Сначала убедитесь, что вы добавили зависимости iText в свой проект Spring Boot. Вы можете добавить следующие зависимости в Maven или Gradle:

Язык кода:javascript
копировать
<!-- Maven полагаться -->
 <!--генерироватьpdf-->
<!-- pdf:start -->
 <dependency>
     <groupId>com.itextpdf</groupId>
     <artifactId>itextpdf</artifactId>
     <version>5.5.13</version>
 </dependency>
 <dependency>
     <groupId>com.itextpdf.tool</groupId>
     <artifactId>xmlworker</artifactId>
     <version>5.5.13</version>
 </dependency>
 <!-- Поддержка китайского языка -->
 <dependency>
     <groupId>com.itextpdf</groupId>
     <artifactId>itext-asian</artifactId>
     <version>5.2.0</version>
 </dependency>

🎈Создание шаблонов PDF

Создайте шаблон PDF со статическим содержимым и заполнителями. Заполнителями могут быть все, что вы хотите заменить во время выполнения, например имена, даты и т. д. Обязательно укажите эти заполнители в шаблоне, чтобы их можно было заменить позже. Для создания шаблонов рекомендуется использовать Adobe Acrobat DC.

🎈Создать класс обслуживания замены PDF-файлов

Создайте сервисный класс, отвечающий за загрузку шаблонов PDF и замену их содержимого.

Язык кода:javascript
копировать
import com.itextpdf.io.IOException;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;
import org.springframework.stereotype.Service;

import java.io.File;

@Service
public class PdfReplacementService {

    public void replaceContent(String templatePath, String outputPath, String name, String date) {
        try {
            // создавать PdfReader объект
            PdfReader reader = new PdfReader(templatePath);

            // создавать PdfWriter объект
            PdfWriter writer = new PdfWriter(outputPath);

            // создавать PdfDocument объект
            PdfDocument pdf = new PdfDocument(reader, writer);

            // создавать Document объект
            Document document = new Document(pdf);

            // Заменить содержимое в шаблоне
            document.add(new Paragraph("Hello, " + name + "!"));
            document.add(new Paragraph("Today is " + date + "."));

            // закрытие Document
            document.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

🎈Создать класс контроллера

Создайте класс Controller для обработки запросов на замену PDF-файлов.

Язык кода:javascript
копировать
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/pdf")
public class PdfController {

    @Autowired
    private PdfReplacementService pdfReplacementService;

    // заменять PDF содержание
    @GetMapping("/replace")
    public String replaceContent() {
        // обозначение PDF шаблонпуть и путь вывода,и предоставитьзаменятьсодержание
        String templatePath = "path/to/your/template.pdf";
        String outputPath = "path/to/your/output.pdf";
        String name = "John Doe";
        String date = "2024-05-10";
        
        // заменять PDF содержание
        pdfReplacementService.replaceContent(templatePath, outputPath, name, date);
        
        return "PDF content replaced successfully.";
    }
}

Запустите приложение Spring Boot и получите доступ к интерфейсу /pdf/replace, чтобы заменить содержимое PDF. Убедитесь, что ваш сервис может правильно заменять содержимое PDF и создавать новые файлы PDF.

Посредством описанных выше шагов был интегрирован iText и реализована функция замены контента на основе шаблонов PDF в Spring Boot. Такой подход делает создание PDF-файлов с динамическим содержимым более гибким и управляемым.

🍚Резюме

Готово, разбросай цветы и скажи спасибо 🎆🎇🌟 Следуй за мной, чтобы не потеряться, я тебя сниму и сделаю богатым.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose