返回

PDF工具箱:SpringBoot 一键搞定PDF生成!让您轻松搞定PDF!

后端

利用SpringBoot PDF工具箱轻松创建和管理PDF文档

在当今信息时代,PDF格式已成为数据和文档传输的标准选择。如果您需要在Java应用程序中创建或操作PDF文档,SpringBoot PDF工具箱将是您的最佳选择,提供无缝的PDF生成和管理体验。

为什么选择SpringBoot PDF工具箱?

简单易用: SpringBoot以其简单性而闻名。几行代码即可轻松生成PDF文件,无需复杂配置。

强大而灵活: 拥有全面的PDF生成功能,包括创建、编辑、合并、拆分和转换。满足您各种PDF处理需求。

跨平台支持: 作为跨平台框架,SpringBoot可以在Windows、Linux和Mac OS等系统上无缝运行,轻松部署到任何环境。

社区支持: SpringBoot拥有庞大的社区,提供丰富的支持资源,帮助您快速解决问题并开发高质量的应用程序。

如何使用SpringBoot生成PDF?

添加依赖:

在您的Maven POM文件中添加SpringBoot PDF starter依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-pdf</artifactId>
</dependency>

创建PDF文档:

创建一个简单的Spring Boot控制器来生成PDF:

import com.lowagie.text.Document;
import com.lowagie.text.pdf.PdfWriter;

@RestController
public class PdfController {

    @GetMapping("/pdf")
    public void generatePdf() throws Exception {
        Document document = new Document();
        PdfWriter.getInstance(document, new FileOutputStream("HelloWorld.pdf"));
        document.open();
        document.add(new Paragraph("Hello World!"));
        document.close();
    }
}

运行应用程序:

mvn spring-boot:run

生成PDF:

访问/pdf URL以生成PDF文档:

http://localhost:8080/pdf

PDF文件将保存在项目根目录下。

更多功能

将HTML转换为PDF:

import com.lowagie.text.Document;
import com.lowagie.text.PageSize;
import com.lowagie.text.html.simpleparser.HTMLWorker;
import com.lowagie.text.pdf.PdfWriter;

import java.io.FileOutputStream;
import java.io.StringReader;

public class HtmlToPdfConverter {

    public static void main(String[] args) throws Exception {
        String html = "<html><body><h1>Hello World!</h1></body></html>";

        Document document = new Document(PageSize.A4);
        PdfWriter.getInstance(document, new FileOutputStream("HelloWorld.pdf"));
        document.open();
        HTMLWorker.getInstance().parse(new StringReader(html), document);
        document.close();
    }
}

将图像转换为PDF:

import com.lowagie.text.Document;
import com.lowagie.text.Image;
import com.lowagie.text.PageSize;
import com.lowagie.text.pdf.PdfWriter;

import java.io.FileOutputStream;

public class ImageToPdfConverter {

    public static void main(String[] args) throws Exception {
        Image image = Image.getInstance("image.jpg");
        image.scaleAbsolute(PageSize.A4.getWidth(), PageSize.A4.getHeight());

        Document document = new Document(PageSize.A4);
        PdfWriter.getInstance(document, new FileOutputStream("Image.pdf"));
        document.open();
        document.add(image);
        document.close();
    }
}

合并多个PDF:

import com.lowagie.text.Document;
import com.lowagie.text.PageSize;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfImportedPage;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfWriter;

import java.io.FileOutputStream;

public class PdfMerger {

    public static void main(String[] args) throws Exception {
        Document document = new Document(PageSize.A4);
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("Merged.pdf"));
        document.open();

        PdfReader reader1 = new PdfReader("pdf1.pdf");
        PdfReader reader2 = new PdfReader("pdf2.pdf");

        int n = reader1.getNumberOfPages();
        for (int i = 1; i <= n; i++) {
            PdfImportedPage page = writer.getImportedPage(reader1, i);
            document.add(page);
        }

        n = reader2.getNumberOfPages();
        for (int i = 1; i <= n; i++) {
            PdfImportedPage page = writer.getImportedPage(reader2, i);
            document.add(page);
        }

        document.close();
    }
}

拆分PDF:

import com.lowagie.text.Document;
import com.lowagie.text.PageSize;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfImportedPage;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfWriter;

import java.io.FileOutputStream;

public class PdfSplitter {

    public static void main(String[] args) throws Exception {
        PdfReader reader = new PdfReader("Original.pdf");
        int n = reader.getNumberOfPages();

        for (int i = 1; i <= n; i++) {
            Document document = new Document(PageSize.A4);
            PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("Splitted_Page" + i + ".pdf"));
            document.open();

            PdfImportedPage page = writer.getImportedPage(reader, i);
            document.add(page);

            document.close();
        }
    }
}

常见问题解答

  • 如何给PDF文件添加水印?

您可以使用Watermark类添加文本或图像水印。

  • 如何给PDF文件添加密码保护?

使用PdfWritersetEncryption()方法添加密码保护。

  • 如何从PDF文件中提取文本?

使用PdfReadergetTextFromPage()方法提取文本。

  • SpringBoot PDF工具箱是否支持其他PDF库?

除了iText库,SpringBoot PDF工具箱还支持Flying Saucer和PdfBox等库。

  • 如何在Spring Boot项目中使用iText PDF库?

只需将iText依赖添加到您的项目中即可:

<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itextpdf</artifactId>
    <version>5.5.13</version>
</dependency>

结论

SpringBoot PDF工具箱是开发人员创建和管理PDF文档的理想工具。其简单易用、功能强大且跨平台支持,使您可以轻松处理各种PDF操作。借助广泛的社区支持,您可以自信地构建可靠且高效的PDF应用程序。