springboot操作pdf(一)之word转pdf


前言

pdf文件,是现在市面上比较常使用的一种文件格式。其在传输的过程中文件格式以及内容不容易更改,因此受到很多用户的使用。但是在java开发的过程中如何生成pdf这却是一个需要我们去解决的问题。


一、PDF是什么?

在这里插入图片描述
PDF是电子书文件,一般用福特阅读器/WPS Office打开。

PDF是Portable Document Format(便携文件格式)的缩写,是一种电子文件格式,与操作系统平台无关,由Adobe 公司开发而成。PDF 文件是以PostScript语言图象模型为基础,无论在哪种打印机上都可保证精确的颜色和准确的打印效果。PDF将忠实地再现原稿的每一个字符、颜色以及图象。PDF文件不管是在Windows,Unix还是在苹果公司的Mac OS操作系统中都是通用的。

这一性能使它成为在Internet上进行电子文档发行和数字化信息传播的理想文档格式。越来越多的电子图书、产品说明、公司文告、网络资料、电子邮件开始使用PDF格式文件。

PDF主要由三项技术组成:

· 衍生自PostScript,可以说是PostScript的缩小版;

· 字型嵌入系统,可使字型随文件一起传输;

· 资料压缩及传输系统。

PDF文件使用了工业标准的压缩算法,通常比PostScript文件小,易于传输与储存。它还是页独立的,一个PDF文件包含一个或多个“页”,可以单独处理各页,特别适合多处理器系统的工作。此外,一个PDF文件还包含文件中所使用的PDF格式版本,以及文件中一些重要结构的定位信息。正是由于 PDF文件的种种优点,它逐渐成为出版业中的新宠。

Adobe公司以PDF文件技术为核心,提供了一整套电子和网络出版解决方案,其中包括用于生成和阅读PDF文件的商业软件Acrobat和用于编辑制作PDF文件的Illustrator等。 Adobe还提供了用于阅读和打印亚洲文字,即中日韩文字所需的字型包。

Adobe公司设计PDF文件格式的目的是为了支持跨平台上的,多媒体集成的信息出版和发布,尤其是提供对网络信息发布的支持。为了达到此目的, PDF具有许多其他电子文档格式无法相比的优点。PDF文件格式可以将文字、字型、格式、颜色及独立于设备和分辨率的图形图像等封装在一个文件中。该格式文件还可以包含超文本链接、声音和动态影像等电子信息,支持特长文件,集成度和安全可靠性都较高。

二、解决方案

1.方案一:使用POI工具,将word文件转化成pdf

1.1 导入依赖

<dependency>
	<groupId>fr.opensagres.xdocreport</groupId>
	<artifactId>fr.opensagres.poi.xwpf.converter.pdf-gae</artifactId>
	<version>2.0.1</version>
</dependency>

1.2 代码如下(示例)

public static void wordToPdf(String wordPath, String pdfPath) {
    try {

        FileInputStream fileInputStream = new FileInputStream(wordPath);
        XWPFDocument xwpfDocument = new XWPFDocument(fileInputStream);
        PdfOptions pdfOptions = PdfOptions.create();
        FileOutputStream fileOutputStream = new FileOutputStream(pdfPath);
        PdfConverter.getInstance().convert(xwpfDocument,fileOutputStream,pdfOptions);
        fileInputStream.close();
        fileOutputStream.close();
    } catch (FileNotFoundException e) {
        throw new RuntimeException(e);
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}

1.3 缺点

生成的pdf文件会出现,些许格式的不一致,但是不介意的可以使用

2.使用spire.doc.free将doc文件转化成pdf

2.1 导入依赖

<dependency>
    <groupId>e-iceblue</groupId>
    <artifactId>spire.doc.free</artifactId>
    <version>5.2.0</version>
</dependency>

2.2 代码如下(示例)

public static void wordToPdf2(String wordPath, String pdfPath) {
    //实例化Document类的对象
    Document doc = new Document();
    //加载Word
    doc.loadFromFile(wordPath);
    //保存为PDF格式
    doc.saveToFile(pdfPath,FileFormat.PDF);
}

2.3 缺点

收费,只能免费转化前三页pdf。对于数据小的需求,可以进行满足。生成的pdf文件格式和原word文件对比,没有变化,因此强烈推荐使用


总结

将word转pdf,个人强烈推荐可以使用第二种方法将word文件生成pdf文件,想了解更多的使用方法,或者获取java代码都请关注公众号。

欢迎关注公众号‘CV算法小屋’

在这里插入图片描述

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
你可以使用Apache POI和iText库来实现Spring Boot中的WordPDF功能。首先,你需要添加以下依赖项到你的`pom.xml`文件中: ```xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.2</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.13</version> </dependency> ``` 接下来,你可以使用Apache POI库来读取Word文档的内容,并将其换为PDF。以下是一个简单的示例代码: ```java import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun; import com.itextpdf.text.Document; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfWriter; import java.io.FileInputStream; import java.io.FileOutputStream; public class WordToPdfConverter { public static void convert(String inputPath, String outputPath) { try { XWPFDocument document = new XWPFDocument(new FileInputStream(inputPath)); Document pdfDocument = new Document(); PdfWriter.getInstance(pdfDocument, new FileOutputStream(outputPath)); pdfDocument.open(); for (XWPFParagraph paragraph : document.getParagraphs()) { XWPFRun run = paragraph.createRun(); String text = paragraph.getText(); run.setText(text); pdfDocument.add(new Paragraph(text)); } pdfDocument.close(); document.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 你可以调用`WordToPdfConverter.convert()`方法,并传入输入和输出文件路径来将Word文档换为PDF。请确保输入文件的路径是正确的,并提供一个有效的输出文件路径。 请注意,这只是一个简单的示例,适用于较小的Word文档。对于较大的文档或更复杂的格式,请根据需要进行修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xuxu1116

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值