Word转为PDF,并在线预览。

package demo;

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;

import com.aspose.cells.License;
import com.aspose.words.Document;

/**
 * 
 * word文档 转换 PDF
 */
public class WordToPdf {
	
	/**
	 * 获取license许可凭证
	 * @return
	 */
	private static boolean getLicense() {
		boolean result = false;
		try {
			String licenseStr = "<License>
"
					+ " <Data>
"
					+ " <Products>
"
					+ " <Product>Aspose.Total for Java</Product>
"
					+ " <Product>Aspose.Words for Java</Product>
"
					+ " </Products>
"
					+ " <EditionType>Enterprise</EditionType>
"
					+ " <SubscriptionExpiry>20991231</SubscriptionExpiry>
"
					+ " <LicenseExpiry>20991231</LicenseExpiry>
"
					+ " <SerialNumber>23dcc79f-44ec-4a23-be3a-03c1632404e9</SerialNumber>
"
					+ " </Data>
"
					+ " <Signature>0nRuwNEddXwLfXB7pw66G71MS93gW8mNzJ7vuh3Sf4VAEOBfpxtHLCotymv1PoeukxYe31K441Ivq0Pkvx1yZZG4O1KCv3Omdbs7uqzUB4xXHlOub4VsTODzDJ5MWHqlRCB1HHcGjlyT2sVGiovLt0Grvqw5+QXBuinoBY0suX0=</Signature>
"
					+ "</License>";
			InputStream license = new ByteArrayInputStream(licenseStr.getBytes("UTF-8"));
			License asposeLic = new License();
			asposeLic.setLicense(license);
			System.out.println("zxu");
			result = true;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}
	
	/**
	 * word文档  转换为 PDF
	 * @param inPath 源文件
	 * @param outPath 目标文件
	 */
	public static void doc2pdf(String inPath, String outPath) {
		
		//验证License,获取许可凭证
        if (!getLicense()) { 
        	return;
        }
        
        try {
        	
        	//新建一个PDF文档
        	File file = new File(outPath);
        	//新建一个IO输出流
            FileOutputStream os = new FileOutputStream(file);
            //获取将要被转化的word文档
            Document doc = new Document(inPath); 
            // 全面支持DOC, DOCX,OOXML, RTF HTML,OpenDocument,PDF, EPUB, XPS,SWF 相互转换
            doc.save(os, com.aspose.words.SaveFormat.PDF);
            os.close();
            
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
	
	public static void main(String[] args) {

		doc2pdf("e:/ceshi.doc", "e:ceshi----001.pdf");
		
	}
	
}

这个也是可以直接复制到工具类中, 获取license许可凭证,这个无需多管。 所需要的jar包在这里拿 链接: https://pan.baidu.com/s/1QNl2Xs43FbERx2ZF5piIHQ 提取码: 23ib 提取到jar包,引入工具类。程序应该就可以运行了,可以再本地测试一下,刚才生成的word文档能不能转成pdf呢? 测试方法中 doc2pdf("e:/ceshi.doc", "e:ceshi----001.pdf"); 第一个参数是word文档的路径,第二个参数是生成pdf的路径。注意后缀名要写对。

**第二步:**pdf在线预览功能 这个功能在网上找了好久都没有合适的,我这个还是很实用的,只需要调用一个路径即可。 适合web项目页面的使用。并且兼容各大浏览器和手机。 在这里需要俩个文件夹,js文件。 链接: https://pan.baidu.com/s/154mPz2-5bukQ7Qh5rbyZ_g 提取码: x128 这两个文件夹要放到你生成pdf文件的同一级路径。 之后调用在页面上调用 window.open(‘<%=basePath%>uploadFiles/uploadFile/web/viewer.html?file=../ceshi.pdf’) ceshi.pdf就是你pdf的文件名称。 如此就可以打开一个新的页面,pdf预览页面。 大家可以亲测一下,除了在线预览有文件没上传,写入word和word转pdf这两个功能是可以实现的。

经验分享 程序员 微信小程序 职场和发展