java中poi如何将word文档转换成pdf

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中poi如何将word文档转换成pdf相关的知识,希望对你有一定的参考价值。

在Java中使用POI将Word文档转换为PDF需要以下步骤:

添加POI和相关的依赖库,例如:poi-ooxml、poi-ooxml-schemas和itextpdf等。

加载Word文档:

java

InputStream inputStream = new FileInputStream("test.docx");
XWPFDocument document = new XWPFDocument(inputStream);
创建PDF输出流:
java

OutputStream outputStream = new FileOutputStream("test.pdf");
PdfOptions options = PdfOptions.create();
使用POI中提供的方法将Word文档转换为PDF:
scss

PdfConverter.getInstance().convert(document, outputStream, options);
关闭输入输出流:
go
Copy code
inputStream.close();
outputStream.close();
完整代码示例:

java

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.converter.pdf.PdfOptions;
import org.apache.poi.xwpf.converter.pdf.PdfConverter;

public class WordToPDFConverter

public static void main(String[] args) throws Exception
InputStream inputStream = new FileInputStream("test.docx");
XWPFDocument document = new XWPFDocument(inputStream);

OutputStream outputStream = new FileOutputStream("test.pdf");
PdfOptions options = PdfOptions.create();

PdfConverter.getInstance().convert(document, outputStream, options);

inputStream.close();
outputStream.close();


请注意,该方法依赖于操作系统上安装的MS Office软件,因此需要确保系统上安装了MS Office并配置了正确的环境变量。
参考技术A itext等等,可以方便转换的了
~
~
~
~
参考技术B poi将word读出来 然后用itext转换成word 。 参考技术C WORD转换为PDF

Word将PDF转换步骤比较简单,我们只需要安装一个虚拟打印机软件“虚拟PDF打印机”即可,也可以是你编辑的文件直接WORD输出PDF文件格式。 (下载地址: http://www.newhua.com/soft/21190.htm )

WORD安装后点击在“打印机名称”,“打开”→“打印”就会看到多了一个“虚拟打印机”选项,选中它,然后单击确定(未注册版本有10秒等待时间),在弹出的“保存PDF文件”对话框中,选择路径保存该文件,然后点击“生成设置”按钮,弹出“系统设置”面板(图3),PDF格式加密文件和字体等设置输出后,单击确定两次,将电流转换成WORD文档中的文件PDF格式
参考技术D 建议你使用卓正软件的pageoffice,很好用的,它还是跨浏览器的呢,网上挺多它的示例代码的,你先参考看看

使用apache的POI API 生成word文档(docx)时,怎么将一段文字设置成为大纲标题,如设置成标题1

使用apache的POI API 生成word文档(docx)时,怎么将一段文字设置成为大纲标题,如设置成标题1

参考技术A 所谓标题1就是一种样式,右键选修改时可以看到它的定义为:
字体: 二号, 加粗, 字距调整二号, 行距: 多倍行距 2.41 字行, 段落间距段前: 17 磅, 段后: 16.5 磅, 与下段同页, 段中不分页, 1 级, 样式: 链接, 快速样式, 优先级: 10, 基于: 正文, 后续样式: 正文
xssf没预定义样式,所以你可根据标题1的定义自己一个个设置属性值即可追问

我想知道的是在使用计算机java语言编程时,如何使用程序自动生成文档,而不是在Microsoft Office中使用。

追答

我知道呀,调用poi api设置各属性值不会吗?

追问

呵呵,但我不知道调用哪个类的哪个方法?

追答

//获得word的pack对象
OPCPackage pack = POIXMLDocument.openPackage("files\\11.docx");
//获得XWPFDocument对象
XWPFDocument doc = new XWPFDocument(pack);
//获得第一个段落对象
XWPFParagraph paragraph = doc.getParagraphs().get(0);
//段落的格式,下面及个设置,将使新添加的文字向左对其,无缩进.
paragraph.setIndentationLeft(0);
paragraph.setIndentationHanging(0);
paragraph.setAlignment(ParagraphAlignment.LEFT);
paragraph.setWordWrap(true);
//在段落中新插入一个run,这里的run我理解就是一个word文档需要显示的个体,里面可以放文字,参数0代表在段落的最前面插入
XWPFRun run = paragraph.insertNewRun(0);
//设置run内容
run.setText("finish");
run.setFontFamily("宋体");
run.setBold(true);
类似的只能自己看文档了

以上是关于java中poi如何将word文档转换成pdf的主要内容,如果未能解决你的问题,请参考以下文章

将word怎么转化html

使用apache的POI API 生成word文档(docx)时,怎么将一段文字设置成为大纲标题,如设置成标题1

java wps将文档转成pdf

有啥方法可以用java 将word或者Excel文件转换成图片文件?

JAVA使用POI读写word 乱码

如何将pdf 文件批量转换成word