Spire PDF转WORD (高效不失真)

简介

摘要:
由于公司对于客户所有的需求都不会婉拒,所以有了这个需求。
转换功能作为Spire产品的一个主要亮点,可用于操作PDF、WORD、PPT、Barcode。本篇文章只记录我在转换过程中的代码。

Maven 仓库

建议两个都导入,我单独使用spire.pdf.free.jar编译java文件时,在windows上运行没有问题,在linux上运行的时候出现了空指针,由于项目时间问题,没有深入研究。如果maven仓库下载不了,请到仓库手动下载

		<dependency>
			<groupId>e-iceblue</groupId>
			<artifactId>spire.pdf.free</artifactId>
			<version>2.2.2</version>
		</dependency> 
		<dependency>
			<groupId>e-iceblue</groupId> 
			<artifactId>spire.pdf</artifactId>
			<version>2.2.0</version> 
		</dependency>     

加载PDF代码 loadFromFile(args0) 传递的是PDF文件路径

		//加载PDF
		PdfDocument pdf = new PdfDocument();
		pdf.loadFromFile(args[0]);

另存为WORD文档 FileFormat提供多种转换格式:DOCX、DOC、HTML、PDF等,代表不止一种转换格式。

		//保存为Word格式
		pdf.saveToFile(args[1], FileFormat.DOCX);
免费Spire.PDF for .NET 是一款由e-iceblue公司开发的专业性的PDF文档创建组件。它能够使用户在不用Adobe Acrobat和其他外部控件的情况下,运用.NET 应用程序阅读,编写和操纵PDF 文档。Spire.PDF for .NET不仅可以运用在服端比如:ASP.NET 或者其他环境,还可以应用在Windows Forms 应用程序中。Spire.PDF for .NET 适合应用于所有常见的坏境中,比如:创建好的PDF文档可以存到磁盘中, 还可以在Windows Forms应用程序,ASP.NET 应用程序客户端浏览器中保存为数据流。 Spire.PDF for .NET 功能丰富。 除了基本的功能比如:绘制多种图形,图片,创建窗体字段,插入页眉页脚,输入数据表,自动对大型表格进行分页外,Spire.PDF for .NET还支持PDF数字签名,将HTML换成PDF格式,提取PDF文档中的文本信息和图片,存为文本格式和各种图片格式,甚至可以将PDF中的附件提取出来。 主要功能 支持嵌入式字体,Truetype 字体和CJK字体。 支持绘图。比如:矩形,环形,弧形,椭圆形,也可以自定笔刷将其填充。 可以将图片从数据流,磁盘文件中载入到PDF 文档中。 在PDF 文档中既可以绘制梯状图形和矢量图像,还支持掩模和水印图像。 可以在PDF 文档中载入数据表。可以设置表中的行和列的格式,还可以在表内加入图形元素。 自动对PDF 中的大型表格进行分页。 创建窗体字段。比如在PDF 文档中创建按钮,文本框,列表框,复选框等等。 在PDF 中插入页眉页脚。 通过设置所有者密码和用户密码来加密PDF文档。 通过作者的签名来保护PDF文档。 读取当前PDF文档的表格并且填充表格。 HTML网页在换到PDF文档时会拆分为多个大型页面,这些页面可以原原本本的展现在PDF文档中,而且在PDF文档的分页处没有任何文字的截断。用户还可以将这些网页在不需要临时文件的情况下,直接换为数据流来创建PDF文档。
### 回答1: Java使用Spire实现PDFWord首先需要导入Spire PDFSpire Word的相关jar包。然后,可以使用以下方法实现PDFWord的功能: 1. 创建一个Document对象,用于加载PDF文件: `PdfDocument pdf = new PdfDocument();` `pdf.loadFromFile("input.pdf");` 2. 创建一个WordDocument对象,用于保存换后的Word文件: `WordDocument doc = new WordDocument();` 3. 遍历PDF的每一页,将其内容添加到Word文件中: `int pageCount = pdf.getPages().getCount();` `for (int i = 0; i < pageCount; i++) {` ` PdfPageBase page = pdf.getPages().get(i);` ` doc.insertText(doc.getSections().get(0).getParagraphs().get(0), page.extractText(true));` `}` 4. 最后,将Word文件保存到指定位置: `doc.saveToFile("output.docx", FileFormat.Docx_2013);` 这样就完成了使用Spire实现PDFWord的操作。通过以上步骤,可以将PDF文件换为Word文件,实现了数据的格式换和跨平台的读取与编辑。使用Spire库能够简化PDFWord文件的处理,提高开发效率。同时,Spire还提供了很多其他功能,可以进一步满足应用需求,例如添加水印、设置页眉页脚等。 ### 回答2: Java使用Spire来实现PDFWord非常简单。Spire是一个功能强大的Java图像和文档处理库,可以轻松处理各种格式的文档。 使用Spire进行PDFWord,首先需要将Spire的jar包添加到Java项目中。然后,可以使用以下代码实现PDFWord的功能: ```java import com.spire.pdf.PdfDocument; import com.spire.pdf.PdfPageBase; import com.spire.pdf.graphics.PdfUnitConvertor; import com.spire.pdf.widget.PdfTextWidget; import com.spire.pdf.widget.PdfWidget; public class PdfToWordConverter { public static void main(String[] args) { // 加载PDF文档 PdfDocument document = new PdfDocument(); document.loadFromFile("input.pdf"); StringBuilder stringBuilder = new StringBuilder(); // 遍历每一页PDF文档 for (int i = 0; i < document.getPages().getCount(); i++) { PdfPageBase page = document.getPages().get(i); // 换每一页为文本 for (PdfWidget widget : page.getWidgets()) { if (widget instanceof PdfTextWidget) { PdfTextWidget textWidget = (PdfTextWidget) widget; stringBuilder.append(textWidget.getText()); } } } // 将文本保存为Word文档 document.saveToFile("output.docx", com.spire.pdf.FileFormat.DOCX); // 关闭文档 document.close(); } } ``` 上述代码加载了一个名为`input.pdf`的PDF文档,然后遍历每一页,将文本内容提取出来,最后将提取的文本保存为一个名为`output.docx`的Word文档。 以上就是使用Java和Spire库实现PDFWord的简单示例。你可以根据自己的需求,进一步定制代码,来处理更复杂的PDFWord操作。 ### 回答3: Java 使用 Spire 实现 PDF Word 是一种比较简单且高效的方法。Spire 是一个强大的 Java 文档处理库,支持多种格式的文档换。 首先,我们需要将 Spire 的 JAR 文件导入到 Java 项目中,并解决相关的依赖问题。 接下来,我们可以使用 Spire 的 API 来实现 PDF Word 的功能。具体步骤如下: 1. 创建一个 Spire 的 Document 对象,这个对象表示要换的 PDF 文档。 2. 使用 Document 对象的 loadFromFile 或 loadFromStream 方法加载要换的 PDF 文件。 3. 创建一个 Spire 的 Document 对象,这个对象表示换后的 Word 文档。 4. 使用 Document 对象的 saveToFile 或 saveToStream 方法将换后的 Word 文档保存到文件或输出流中。 5. 释放资源,关闭相关的对象。 以下是一个简单的示例代码,演示如何使用 Spire 实现 PDF Word: ```java import com.spire.pdf.PdfDocument; import com.spire.pdf.PdfPageBase; import com.spire.pdf.PdfUnitConvertor; import com.spire.pdf.graphics.PdfMargins; import com.spire.pdf.graphics.PdfUnit; import java.awt.Dimension; public class PdfToWordConverter { public static void main(String[] args) { // 加载 PDF 文档 PdfDocument pdf = new PdfDocument(); pdf.loadFromFile("input.pdf"); // 创建 Word 文档 com.spire.doc.Document doc = new com.spire.doc.Document(); // 循环遍历 PDF 文档的各个页面 for (int i = 0; i < pdf.getPages().getCount(); i++) { // 获取页面内容 PdfPageBase page = pdf.getPages().get(i); Dimension size = new Dimension((int) page.getSize().getWidth(), (int) page.getSize().getHeight()); // 调整文档大小 doc.setPageSize(size); doc.getPageSetup().setMargins(new PdfMargins(0)); doc.getPageSetup().setPageWidth(new PdfUnitConvertor().convertPixelsToPoints((float) size.getWidth())); doc.getPageSetup().setPageHeight(new PdfUnitConvertor().convertPixelsToPoints((float) size.getHeight())); // 将 PDF 页面内容插入到 Word 文档中 com.spire.doc.Section section = doc.addSection(); PdfUnitConvertor unitConvertor = new PdfUnitConvertor(); section.getPageSetup().getMargins().setTop(unitConvertor.convertPointToTwip(0)); section.getPageSetup().getMargins().setBottom(unitConvertor.convertPointToTwip(0)); section.getPageSetup().getMargins().setLeft(unitConvertor.convertPointToTwip(0)); section.getPageSetup().getMargins().setRight(unitConvertor.convertPointToTwip(0)); section.getPageSetup().setOrientation(com.spire.doc.documents.PageOrientation.Landscape); section.getPageSetup().getPageWidth(); com.spire.doc.Page pageSetting = section.getPages().add(); pageSetting.setSize(size); com.spire.doc.Picture picture = pageSetting.getPictures().insertPicture(new com.spire.doc.FileFormat.PDF.PdfPicture(doc, page), 0); // 添加分页符 if (i < pdf.getPages().getCount() - 1) { section.getParagraphs().add("\f"); } } // 保存 Word 文档 doc.saveToFile("output.docx", com.spire.doc.FileFormat.Docx); doc.dispose(); pdf.close(); } } ``` 通过上述步骤,我们可以将一个或多个 PDF 页面换为 Word 文档,并保存到本地文件中。使用 Spire,我们可以方便地处理 PDFWord换操作。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值