WordUtil.java

package com.thinkgem.jeesite.modules.meeting.utils;

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

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

public class WordUtil {

	private static InputStream license;

	public static File wordToPdf(File word, String uploadPath, String format) {
		File pdf;// 转文件pdf
		InputStream wordInputStream = null;// 源文件word输入流
		FileOutputStream pdfOutputStream;// 转文件pdf输出流
		try {
			File pdfPath = new File(uploadPath);
			if (!pdfPath.exists())
				pdfPath.mkdirs();
			if (!getLicense()) {// 验证License
				return null; // "验证License失败!";
			}
			wordInputStream = new FileInputStream(word);
			Document document = new Document(wordInputStream);
			pdf = new File(pdfPath + File.separator + word.getName().replace("." + format, "." + FileType.pdf.name()));
			pdfOutputStream = new FileOutputStream(pdf);
			document.save(pdfOutputStream, SaveFormat.PDF);
			pdfOutputStream.close();
			wordInputStream.close();
			return pdf;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	/**
	 * 
	 * @title getLicense
	 * @Description 获取license
	 * @return
	 */
	public static boolean getLicense() {
		boolean result = false;
		try {
			ClassLoader loader = Thread.currentThread().getContextClassLoader();
			license = new FileInputStream(loader.getResource("license.xml").getPath());// 凭证文件
			License aposeLic = new License();
			aposeLic.setLicense(license);
			result = true;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}
	
	public static void main(String[] args) {
		String path = "D:/uploadFile/2.docx";
		File excel = new File(path);
		wordToPdf(excel, excel.getParentFile().getPath(), "docx");
		System.out.println("转换结束!");
	}
}

license.xml

<License>
  <Data>
    <Products>
      <Product>Aspose.Total for Java</Product>
      <Product>Aspose.Words for Java</Product>
    </Products>
    <EditionType>Enterprise</EditionType>
    <SubscriptionExpiry>29991231</SubscriptionExpiry>
    <LicenseExpiry>29991231</LicenseExpiry>
    <SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber>
  </Data>
  <Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature>
</License>

pom.xml

<dependency>
	<groupId>com.aspose</groupId>
	<artifactId>aspose-words</artifactId>
	<version>${aspose.version}</version>
</dependency>
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐