Java利用openoffice转换文件类型

import com.sun.star.beans.PropertyValue;
import com.sun.star.comp.helper.Bootstrap;
import com.sun.star.frame.XComponentLoader;
import com.sun.star.frame.XStorable;
import com.sun.star.lang.XMultiComponentFactory;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XComponentContext;


public class OpenOffice {
 
 public OpenOffice(){
  
 }
 
 public boolean doCovert(String souceFilePath, String pdfFilePath){
  try{

   //仅在openoffice1.2以上的版本适用
   XComponentContext xComponentContext = Bootstrap.bootstrap();
   XMultiComponentFactory xMultiComponentFactory = xComponentContext.getServiceManager();
   XComponentLoader xComponentLoader = (XComponentLoader)UnoRuntime.queryInterface(XComponentLoader.class,xMultiComponentFactory.createInstanceWithContext("com.sun.star.frame.Desktop", xComponentContext));
           //以隐藏的方式打开openoffice
            PropertyValue[] loadProps = new PropertyValue[1];
           loadProps[0] = new PropertyValue();
            loadProps[0].Name = "Hidden";
            loadProps[0].Value = new Boolean(true);
           
            Object objectDocumentToStore = xComponentLoader.loadComponentFromURL(souceFilePath, "_blank", 0, loadProps);
            //pdf文件属性的设置
            PropertyValue[] pdfFilterData = ProPertyValue.getPropertyValue();
            //转化的属性设置
            PropertyValue[] conversionProperties = new PropertyValue[3];
            conversionProperties[0] = new PropertyValue();
            conversionProperties[0].Name = "FilterName";
            conversionProperties[0].Value = "writer_pdf_Export";
            conversionProperties[1] = new PropertyValue();
            conversionProperties[1].Name = "Overwrite ";
            conversionProperties[1].Value = new Boolean(true);
            conversionProperties[2] = new PropertyValue();
            conversionProperties[2].Name = "FilterData";
            conversionProperties[2].Value = pdfFilterData;
            //转化方法
            XStorable xstorable = (XStorable) UnoRuntime.queryInterface(XStorable.class,objectDocumentToStore);
            xstorable.storeToURL(pdfFilePath, conversionProperties);
           
            return true;
                   
  }catch(Exception e){
   e.printStackTrace();
   return false;
  }
 }

}

 

//pdf属性设置

class ProPertyValue {
 
 public static PropertyValue[] getPropertyValue(){
  PropertyValue[] pdfFilterData = new PropertyValue[18];


        pdfFilterData[0] = new PropertyValue();
        pdfFilterData[0].Name = "PermissionPassword";
        pdfFilterData[0].Value = "nopermission";
       
        pdfFilterData[1] = new PropertyValue();
        pdfFilterData[1].Name = "RestrictPermissions";
        pdfFilterData[1].Value = new Boolean(false);
       
        pdfFilterData[2] = new PropertyValue();
        pdfFilterData[2].Name = "DocumentOpenPassword";
        pdfFilterData[2].Value = null;
       
        pdfFilterData[3] = new PropertyValue();
        pdfFilterData[3].Name = "EncryptFile";
        pdfFilterData[3].Value = new Boolean(true);
       
        pdfFilterData[4] = new PropertyValue();
        pdfFilterData[4].Name = "Printing";
        pdfFilterData[4].Value = new Integer(0);
       
        pdfFilterData[5] = new PropertyValue();
        pdfFilterData[5].Name = "Changes";
        pdfFilterData[5].Value = new Integer(4);
       
        pdfFilterData[6] = new PropertyValue();
        pdfFilterData[6].Name = "EnableCopyingOfContent";
        pdfFilterData[6].Value = new Boolean(false);
       
        pdfFilterData[7] = new PropertyValue();
        pdfFilterData[7].Name = "EnableTextAccessForAccessibilityTools";
        pdfFilterData[7].Value = new Boolean(false);
       
        pdfFilterData[8] = new PropertyValue();
        pdfFilterData[8].Name = "PageRange";
        pdfFilterData[8].Value = "all";
       
        pdfFilterData[9] = new PropertyValue();
        pdfFilterData[9].Name = "UseLosslessCompression";
        pdfFilterData[9].Value = new Boolean(true);
       
        pdfFilterData[10] = new PropertyValue();
        pdfFilterData[10].Name = "Quality";
        pdfFilterData[10].Value = new Integer(50);
       
        pdfFilterData[11] = new PropertyValue();
        pdfFilterData[11].Name = "ReduceImageResolution";
        pdfFilterData[11].Value = new Boolean(true);
       
        pdfFilterData[12] = new PropertyValue();
        pdfFilterData[12].Name = "MaxImageResolution";
        pdfFilterData[12].Value = new Integer(100);
       
        pdfFilterData[13] = new PropertyValue();
        pdfFilterData[13].Name = "ExportFormFields";
        pdfFilterData[13].Value = new Boolean(false);
       
        pdfFilterData[14] = new PropertyValue();
        pdfFilterData[14].Name = "CenterWindow";
        pdfFilterData[14].Value = new Boolean(true);
       
        pdfFilterData[15] = new PropertyValue();
        pdfFilterData[15].Name = "Magnification";
        pdfFilterData[15].Value = new Integer(4);
       
        pdfFilterData[16] = new PropertyValue();
        pdfFilterData[16].Name = "Zoom";
        pdfFilterData[16].Value = new Integer(120);
       
        pdfFilterData[17] = new PropertyValue();
        pdfFilterData[17].Name = "IsSkipEmptyPages";
        pdfFilterData[17].Value = new Boolean(true);
       
        return pdfFilterData;
 }

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值