java集成友宏转换服务奖pdf office转换为ofd以及ofd ocr识别

第一步:集成友宏提供的jar包

  在配置好maven环境变量的前提下,通过命令:

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>,将jar包加入到maven仓库中。

  其中:

  <path-to-file>为你jar包所在的路径(尽量简单并且不要含中文)
  <group-id>为grouId号,与<artifact-id>组成唯一识别你jar包的坐标,当不在公共资源jar包中,自己自定义的jar时,可以自定义groupId号
  <artifact-id>为artifactId号,与<group-id>组成唯一识别你jar包的坐标,当不在公共资源jar包中,自己自定义的jar时,可以自定义artifactId号
  <version>jar包版本号,也可以自定义
  <packaging>包的后缀,一般都是jar

  例如:mvn install:install-file -Dfile=D:\agent-1.0.0.jar -DgroupId=com.youhong -DartifactId=agent -Dversion=1.0.0 -Dpackaging=jar
  导入jar包后,在pom文件添加依赖,导入此jar包。

第二步:启动友宏提供的转换服务

  启动友宏提供的SC-OFDSuite-2.0.jar包,运行友宏提供的start.bat脚本即可启动。

  首次启动时不会成功,会在dos窗口打印机器码,将机器码发送给友宏的人员,友宏会根据机器码发送给我方一个许可文件license.lic。将此文件放入SC-OFDSuite-2.0.jar同级目录的config目录下。此时再次启动,成功。

第三步:编码

 

  1:ofd内容识别

  //创建转换服务的连接

  final HTTPAgent agent = new HTTPAgent("http://转换服务的ip/转换服务的端口/v1/");

  //获取ocr文件中的文字

  FIle file = new FIle("要获取内容的文件地址");

  agent.getOcrText(file);

 

  2:ofd转换为ofice(包含Word,Excel,txt),html,图片

  private void transform(String filePath){

    boolean flag = true;

    if(filePath.contains("/")){

      flag = false;

    }

    String[] filePathArray = null;

    if(flag){

      filePathArray = filePath.split("\\\\");

    }else{

      filePathArray = filePath.split("/")

    }

    String newFIlePath = "";

    for(int i=0;i<filePathArray.length;i++){

      if(i<filePathArray.length - 1){

        if(flag){

          newFilePath += filePathArray[i]+"\\\\";

        }else{

          newFIlePath += filePathArray[i]+"/";

        }

      }else{

        Sring newFileName = filePathArray[i].split("\\.")[0]+".ofd";

        newFilePath += newFileName;

      }

    }

    //获取源文件格式

    String fileType = filePath.split("\\.")[1];

    final HTTPAgent httpAgent = new HTTPAgent("http://转换服务的ip/转换服务的端口/v1/");

    FIle srcFile = new File(filePath);

    FileOutputStream fileOupputStream = null;

    try{

      fileOutputStream = new FileOutputStream(newFIlePath);

      //office转换ofd

      if(PublicConstant.officeTypeList.contains(fileType)){

        httpAgent.officeToOFD(srcFile,fileOutputStream);

      }

      //图片转ofd

      if(PublicConstant.picTypeList.contains(fileType)){

        List<File> fileList = new ArrayLIst<>();

        fileList.add(srcFile);

        httpAgent.imagesToDoubleLayerOFD(fileList,fileOutputStream,null,null);

      }

      //html转ofd

      if("html".equals(fileType)){

        httpAgent.htmlFileToOFD(srcFile,fileOutputStream);

      }

    }catch(Exception e){

      log.error("记录日志");

    }finally{

      try{

        httpAgent.close();

        fileOutputStream.close();

      }catch(IOException e){

        log.error("记录日志");

      }

    }

  }

 

posted @ 2022-05-30 14:41  zwbsoft  阅读(499)  评论(0编辑  收藏  举报