如何使用java把多个word文档合并?

如何使用java把多个word文档合并?,第1张

用jacob类库可以用java *** 作word文档,可以转换为自己需要的格式比如java中的String或者网页HTML等,转换的过程中是保留文档格式的,多份文档只需要自己拼接一下就行了。

public static void many2one(List<String> bookFilePaths, String toPath,String distFileName) {

    if (bookFilePaths != null && bookFilePaths.size() > 0) {

     File[] files = new File[bookFilePaths.size()]

     for(int i = 0 i < bookFilePaths.size() i++){

      files[i] =  new File(bookFilePaths.get(i))

     }

     if (files != null && files.length > 0) {

      

      try {

       ArrayList pages = new ArrayList(files.length - 1)

       FileSeekableStream[] stream = new FileSeekableStream[files.length]

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

        stream[i] = new FileSeekableStream(

          files[i].getCanonicalPath())

       }

       ParameterBlock pb = (new ParameterBlock())

       PlanarImage firstPage = JAI.create("stream", stream[0])

       for (int i = 1 i < files.length i++) {

        PlanarImage page = JAI.create("stream", stream[i])

        pages.add(page)

  

       }

       TIFFEncodeParam param = new TIFFEncodeParam()

       File f = new File(toPath)

       if(!f.exists()){

        f.mkdirs()

       }

       OutputStream os = new FileOutputStream(toPath + File.separator+ distFileName)

       ImageEncoder enc = ImageCodec.createImageEncoder("tiff",

         os, param)

       param.setExtraImages(pages.iterator())

       enc.encode(firstPage)

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

        stream[i].close()

           if(files[i].isFile()&&files[i].exists()){

         files[i].delete()

        }

       }

       os.close()

      } catch (IOException e) {

       e.printStackTrace()

      }

     }

    }

   }

java在读取linux目录时可以使用FileSystem类,FileSystem创建IO流时需要Path子类,新建Path只需要传入String类型的路径即可。

所以拼接路径实际上就是对String的拼接。

String有多种方法可以拼接,最简单的是直接用+号来接。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/7910694.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-11
下一篇2023-04-11

发表评论

登录后才能评论

评论列表(0条)

    保存