java关于EXCEL转图片的问题-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

java关于EXCEL转图片的问题

2016-03-17 14:29:06 6478 1

做EXCEL转图片时出现了一点小问题,在网上没有找到解决的拌饭,各位如果又碰到类似的,麻烦给我提示
实现的功能:使用openoffice4将excel转为PDF,然后通过PDFReaderer将PDF转为图片。
实现的思路:tomcat启动时调用openoffice,启动office服务(因为Linux下重复启动OfficeManager会报错)。然后每次在调用的时候直接对excel进行转换。
目前碰到的问题:
1、openoffice总是会出现“reached limit of 200 maxTasksPerProcess: restarting”,然后自动重启,实际上我的并发量并没有那么大,我现在还不知道如何释放它的任务进程。
2、并发生成图片的时候,使用openoffice将excle转为PDF后正常,生成了PDF_A和PDF_B然后,使用PDFRenderer将PDF转为图片的过程,流读取混乱了,导致的结果个PDF_A未生成图片,PDF_B生成的图片变成了PDF_A的结果。

取消 提交回答
全部回答(1)
  • 蛮大人123
    2019-07-17 19:05:21

    利用openoffice将各种类型的文档转换成pdf,然后再利用imagsio将pdf转成图片。
    示例代码如下:

    public static void doc2Pdf(String docPath, String pdfPath) throws ConnectException {  
                            File inputFile = new File(docPath);//预转文件  
                            File outputFile = new File(pdfPath);//pdf文件  
                            OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);  
                            connection.connect();//建立连接  
                            DocumentConverter converter = new OpenOfficeDocumentConverter(connection);  
                            DefaultDocumentFormatRegistry formatReg = new DefaultDocumentFormatRegistry();     
                            DocumentFormat txt = formatReg.getFormatByFileExtension("odt") ;//设定文件格式  
                            DocumentFormat pdf = formatReg.getFormatByFileExtension("pdf") ;//设定文件格式  
                            converter.convert(inputFile, txt, outputFile, pdf);//文件转换  
                            connection.disconnect();//关闭连接  
                   }  

    将任意类型文件转成图片类型:

    public static void doc2Imags(String docPath, String imgDirPath){  
        String pdfPath =String.format("%s%s.pdf",  FilenameUtils.getFullPath(docPath), FilenameUtils.getBaseName(docPath));  
        try {  
            doc2Pdf(docPath, pdfPath);  
            pdf2Imgs(pdfPath, imgDirPath);  
            File pdf =  new File(pdfPath);  
            if(pdf.isFile()){  
                pdf.delete();  
            }  
      
        } catch (ConnectException e) {  
            e.printStackTrace();  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
       }  
    0 0
相关问答

1

回答

java怎么通过多线程怎么导出万级海量数据到excel

2018-05-10 20:07:53 7109浏览量 回答数 1

1

回答

JXL 在java中为什么导出的excel只有一行

2016-02-26 11:44:50 2226浏览量 回答数 1

0

回答

Java性能调优,java中读取XML节点树性能最优的做法是什么?

2021-11-07 21:27:25 260浏览量 回答数 0

0

回答

Java性能调优,java中针对XML节点转换为对象性能最快的做法是什么?

2021-11-07 21:27:28 258浏览量 回答数 0

0

回答

Java性能调优,使用java向txt格式的文件数据追加行数据的性能最优的做法是什么?

2021-11-12 17:05:28 660浏览量 回答数 0

0

回答

请问java System.out与PrintStream性能上有什么差别,System.out会占

2021-11-12 17:16:05 118浏览量 回答数 0

0

回答

Java性能调优,java中有没有按年比较日期是否相等性能最优的做法?

2021-11-12 17:05:35 499浏览量 回答数 0

0

回答

请问java中如何加速java深拷贝操作,有没有提升深拷贝性能更好的做法?

2021-11-12 17:16:08 147浏览量 回答数 0

0

回答

Java性能调优,读取java集合TreeSet对象中的最后一个元素,有没有性能更好的做法?

2021-11-12 17:05:38 531浏览量 回答数 0

0

回答

请问java在字符串中查找多个词组的性能最佳的方法是什么?

2021-11-07 14:50:31 174浏览量 回答数 0
+关注
蛮大人123
我说我不帅他们就打我,还说我虚伪
文章
问答
问答排行榜
最热
最新
相关电子书
更多
yqdh_58c13113597...1510470399.pdf
立即下载
yqdh_58c1310f3e1...1510467885.pdf
立即下载
59e71e6620d081509749879.pdf
立即下载