用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

doc转pdf和pdf转swf

2016-05-27 作者: NeoSteven举报

[java]代码库

/**
*OpenOffice可以到官网下载最新版的SWFTools也是直接搜索名字即可
*OpenOffice转2007版本一下的支持比较好2010以上对插入的艺术字表格等会丢失但是文字和图片还是没有问题的
*/
package com.java.doc2pdf;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.net.ConnectException;

import com.artofsolving.jodconverter.DocumentConverter;
import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;
/**
 * doc docx格式转换
 */
public class DocConverter {
	
	
	//Test测试方法
	public static void main(String[] args) throws Exception {
		DocConverter d = new DocConverter();
		String fileString = "美文.doc";
		String fileName = fileString.substring(0, fileString.lastIndexOf("."));
		int a = d.office2PDF("D:\\美文.docx","D:\\美文.pdf");
		System.out.println(a);
		int b = d.pdf2swf("D:\\美文.pdf","D:\\美文.swf",fileName);
		System.out.println(b);
		
		
		
		
	}
	
	 /**
	  * doc转pdf
	  * @param sourceFile
	  * @param destFile
	  * @return
	  */
	 public int office2PDF(String sourceFile, String destFile) {  
	        try {  
	            File inputFile = new File(sourceFile);  
	            if (!inputFile.exists()) {  
	                return -1;// 找不到源文件, 则返回-1  
	            }  
	            System.out.println("FindDocFile");
	            // 如果目标路径不存在, 则新建该路径  
	            File outputFile = new File(destFile);  
	            if (!outputFile.getParentFile().exists()) {  
	                outputFile.getParentFile().mkdirs();  
	            }  
	            System.out.println("mkPdfFile");
	            //这里是OpenOffice的安装目录
	            String OpenOffice_HOME = "C:/Program Files (x86)/OpenOffice 4";
	            // 如果从文件中读取的URL地址最后一个字符不是 '\',则添加'\'  
	            System.out.println(OpenOffice_HOME);
	            if (OpenOffice_HOME.charAt(OpenOffice_HOME.length() - 1) != '\\') {  
	                OpenOffice_HOME += "\\";  
	            }  
	            // 启动OpenOffice的服务  
	            System.out.println("OpenOfficeStart");
	            String command = OpenOffice_HOME  
	                    + "program\\soffice.exe -headless -accept=\"socket,host=127.0.0.1,port=8100;urp;\"";  
	            Process pro = Runtime.getRuntime().exec(command);  
	            // connect to an OpenOffice.org instance running on port 8100  
	            OpenOfficeConnection connection = new SocketOpenOfficeConnection(  
	                    "127.0.0.1", 8100);  
	            connection.connect();  
	  
	            // convert  
	            DocumentConverter converter = new OpenOfficeDocumentConverter(  
	                    connection);  
	            converter.convert(inputFile, outputFile);  
	  
	            // close the connection  
	            connection.disconnect();  
	            // 关闭OpenOffice服务的进程  
	            pro.destroy();  
	            System.out.println("OpenOfficeStop");
	            return 0;  
	        } catch (FileNotFoundException e) {  
	            e.printStackTrace();  
	            return -1;  
	        } catch (ConnectException e) {  
	            e.printStackTrace();  
	        } catch (IOException e) {  
	            e.printStackTrace();  
	        }  
	  
	        return 1;  
	    }  
	
	/**
	 * pdf转换成 swf
	 * @throws Exception 
	 */
	 
	 private int pdf2swf(String pdfFile, String swfFile,String fileName) throws Exception {  
		  try {  
	            File inputFile = new File(pdfFile);  
	            if (!inputFile.exists()) {  
	                return -1;// 找不到源文件, 则返回-1  
	            }  
	            System.out.println("FindDocFile");
	            // 如果目标路径不存在, 则新建该路径  
	            File outputFile = new File(swfFile);  
	            if (!outputFile.getParentFile().exists()) {  
	                outputFile.getParentFile().mkdirs();  
	            }  
	            System.out.println("mkSwfFile");
	            //这里是SWFTools的安装目录
	            String SWFTools_HOME = "F://test//SWFTools//pdf2swf.exe";
	            System.out.println("SWFToolsStart");
	            System.out.println(inputFile.getPath());
	            System.out.println(outputFile.getPath());
	            String command = (SWFTools_HOME
						+" "+inputFile.getPath()+ " -o " +" "+ outputFile.getPath()
						+ " -T 9");
				System.out.println("转换命令:" + command);
	            Process pro = Runtime.getRuntime().exec(command); 
	            System.out.println(loadStream(pro.getInputStream()));  
                System.out.println("swf文件转份成功!!!");  
                System.out.println(outputFile.getPath());  
	            pro.destroy();  
//	            if (inputFile.exists()) {
//	            	inputFile.delete();
//				}

	            System.out.println("SWFToolsStop");
	            return 0;  
	        } catch (FileNotFoundException e) {  
	            e.printStackTrace();  
	            return -1;  
	        } catch (ConnectException e) {  
	            e.printStackTrace();  
	        } catch (IOException e) {  
	            e.printStackTrace();  
	        }  
		 return 0;
		 
	    }  
	      
	    private static String loadStream(InputStream in) throws Exception {  
	        int len = 0;  
	        in = new BufferedInputStream(in);  
	        StringBuffer buffer = new StringBuffer();  
	        while ((len = in.read()) != -1) {  
	            buffer.append((char) len);  
	        }  
	        return buffer.toString();  
	    }  


}

[源代码打包下载]




网友评论    (发表评论)

共2 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...