如何制作【WPS】文档转换器?

不是要做一个单纯优秀的人,而是要做一个不可替代的人。 - - 阳墨余

一、实现思路

最近在学习Springboot框架,突发奇想的想利用springboot来实现PDF转化为Word的这么一个功能,可是在网上找了许多,发现都不怎么齐全,或者说讲解的不是很清楚,如果是没有怎么接触Springboot,或者说是不太了解Spire.Doc.jarSpire.Pdf.jar这样的第三方库的人,在实现的时候就比较困难,毕竟很多东西都需要自己编写与实现,比如需要使用OCR技术来扫描,获取word文件。

1.1、注释

由于采用第三方库Iceblue官网 来实现PDF转化为Word文档,所以使用该库转化的话有一个限制,免费转化页数为11页。
Jar包下载
Spire.PDF for java 下载
Spire.Doc for java 下载

1.2、思路

	/*
	* PDF转化为Word(伪代码)
	*/
	//1、如果PDF文件的页数小于11,直接将PDF转化为Word
	if(file.TotalPage<=11)
		PDF => Word
	/**
	*2、当PDF的页数大于11时候,将该PDF转化为页数为11的子PDF文件,然后分别进行步骤 1
	*   最后合并所有的word文件为一个word文件并输出到当前上传文件所在的路径上
	*/
	else
		PDF => PDF[] files = PDF.split();
		for i=0 to files.length - 1
			(PDF)files[i] => Word
			srcPathFile[i] = Word 
		
		//合并分片后的子word文件
		MergeWord(srcPathFile)

1.3、第三方库的Springboot依赖

<repositories>
        <repository>
            <id>com.e-iceblue</id>
            <url>http://repo.e-iceblue.cn/repository/maven-public/</url>
        </repository>
</repositories>
    
<dependencies>
 <dependency>
            <groupId>e-iceblue</groupId>
            <artifactId>spire.pdf.free</artifactId>
            <version>2.6.3</version>
        </dependency>

        <dependency>
            <groupId>e-iceblue</groupId>
            <artifactId>spire.doc.free</artifactId>
            <version>2.7.3</version>
        </dependency>
        <dependency>
            <groupId>e-iceblue</groupId>
            <artifactId>spire.xls.free</artifactId>
            <version>2.2.0</version>
        </dependency>
        <dependency>
            <groupId>e-iceblue</groupId>
            <artifactId>spire.barcode.free</artifactId>
            <version>2.6.2</version>
        </dependency>
        <dependency>
            <groupId>e-iceblue</groupId>
            <artifactId>spire.office.free</artifactId>
            <version>3.1.1</version>
        </dependency>
        <dependency>
            <groupId>e-iceblue</groupId>
            <artifactId>spire.presentation.free</artifactId>
            <version>2.6.1</version>
        </dependency>
</dependencies>

二、知识梳理

在开始实现该功能之前,习惯性我们都来梳理一下实现该功能,我们需要了解、掌握哪些知识,一来让我们更加深入了解该功能涉及到的知识,增加我们的知识库,其二让我们在实现该功能的时候更加透明的了解其整个实现。

1、Java将Word文档转换为PDF

Spire.Doc能够非常完美的识别中文字符并支持丰富的word文档元素:文本框、页眉、页脚、项目符号和编号、表格、文本、超链接、水印、图片、形状等。

示例代码

import com.spire.doc.*;

public class WordToPDF{
	public static void main(String[] args){
		//加载word文档
		Document document = new Document();
		document.loadFromFile("Sample.docx");


		//保存结果文档
		document.saveToFile("./out/toPDF.pdf",fileFromat.PDF);
	}
}

2、Java转换Word到PNG、 XPS、 XML、RTF等格式文档

Word是一种很好的排版工具,我们用Word创建好文档后往往需要保存成 PDF、图片或其它文档格式。下面我们来介绍如何使用Spire.Doc for Java转换Word文档到PNGXPSRTF等格式文档。

示例代码

import com.spire.doc.Document;
import com.spire.doc.FileFromat;
import com.spire.doc.documents.ImageType;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class ConvertWordToOtherFormats{
	public static void main(String[] args) throw IOException{
		//创建Document对象
		Document doc = new Document;
		
		//加载Word文档
		doc.loadFromFile("c:\\users\\Administrator\\Desktop\\sample.docx");
		
		//将指定页保存为BufferedImage
		BufferedImage image = doc.saveToImages(0,ImageType.Bittmap);
			
		//将图片数据保存为PNG格式文档
		File file = new File("output/ToPNG.png");
		ImageIO.write(image,"PNG",file);
		
		//将word保存为SVG格式
		doc.saveToFile("output/ToSVG.svg",FileFormat.SVG);
	
		//将word保存为RTF格式
		doc.saveToFile("output/ToRTF.rtf",FileFormat.Rtf);
	
		//将Word转换为xps格式
		doc.saveToFile("output/ToXML.xml",FileFormat.xml);
	
		//将word保存为Txt格式
		dox.saveToFile("output/ToTxt.txt",FileFormat.Txt);
	
	}
}

3、Java将PDF转化为图片

Spire.PDF for JAVA在Java程序中将PDF转换成图片。并且Spire.PDF 能够非常完美的识别中文字符并将其转换为图片,支持的图片格式有Jpeg, Jpg, Png, Bmp, Tiff, Gif, EMF等。

示例代码

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import com.spire.pdf.PdfDocument;
import javax.imageio.ImageIO;

public class toImage {

        public static void main(String[] args) throws IOException {
            //加载PDF文件
            PdfDocument doc = new PdfDocument();
            doc.loadFromFile("Sample.pdf");

            //保存PDF的每一页到图片
            BufferedImage image;
            for (int i = 0; i < doc.getPages().getCount(); i++) {
                image = doc.saveAsImage(i);
                File file = new File( String.format("ToImage-img-%d.png", i));
                ImageIO.write(image, "PNG", file);
            }

            doc.close();
        }

}

4、Java将 PDF转换为 HTML、Word、SVG、XPS等文件格式

Spire.PDF for Java可以将PDF文档转换为HTMLWordSVG格式,以及将XPSPDF相互转换。此外,Spire.PDF for Java还支持将PDF转换为PDF/A,将PDF文档转换为图片和将图片转换为PDF格式。

示例代码

	/**
	*PDF转化为HTML
	*/ 
	//1,加载PDF文件
	PdfDocumnet pdf = new PdfDocument();
	pdf.loadFromFile("Input.pdf");
	//2、保存文件为HTML格式
	pdf.saveFile("ToHTML.html",FileFormat.HTML);

	/**
	* PDF转化为Word
	*/
	//1、加载PDF文件
	PdfDocument pdf = new PdfDocument();
	pdf.loadFromFile("Input.pdf");
	//2、保存为Word文件格式
	pdf.saveToFile("ToWord.docx",FileFormat.DOCX);


	/**
	* PDF 转化为SVG
	*/	
	
	// 1、加载PDF文件
	PdfDocument pdf = new PdfDocument();
	pdf.loadFromFile("Input.pdf");
	//2、保存为SVG格式
	pdf.saveToFile("ToSVG.svg",FileFormat.SVG);


	/**
	* XPS与PDF互相转换
	*/	
	
	//1、XPS -> PDF
	PdfDocumentFile pdf = new PdfDocument();
	pdf.loadFromXPS("ToXPS.xps");
	pdf.saveToFile("ToPDF.pdf",FileFormat.PDF);

	//2、PDF -> XPS
	PdfDocument pdf = new PdfDocument();
	pdf.loadFromFile("Input.pdf");
	pdf.saveToFile("ToXPS.xps",FileFormat.XPS);
		

三、开发文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值