java 将excel文件转换成pdf文件

   最近做一个项目,需要把excel文件转换成pdf文件,经过我查资料,无非使用两种方式:1 POI+Itext 2 Jacob来调用excel另存功能。

  第一种方式,原理是使用POI来读取excel的内容,将其写到pdf文件中。实现难度有点大,主要是因为excel sheet结构不固定,内容也不固定,可能存在图片等,导致读excel比较复杂,真正实现还是比较复杂的。

  第二种方式,原来是使用jacob来调用excel文件的另存为pdf的功能。主要是熟悉jacob的API即可。不需要精巧的编程技巧。

  本文使用第二种方式,使用这种方式,需要在当前环境中安装office,pdf软件。建议安装office 2010版本。如果安装的07版本,还需要安装一个excel插件(SaveAsPDFandXPS.exe) 这个插件是微软官方的,链接如下:微软官方

  package com.bplead.module.sign.util;

  import com.jacob.activeX.ActiveXComponent;

  import com.jacob.com.Dispatch;

  import com.jacob.com.Variant;

  public class TransferTool {

  public static void els2pdf(String els,String pdf){

  System.out.println("Starting excel...");

  long start = System.currentTimeMillis();

  ActiveXComponent app = new ActiveXComponent("Excel.Application");

  try {

  app.setProperty("Visible",false);

  Dispatch workbooks = app.getProperty("Workbooks").toDispatch();

  System.out.println("opening document:" + els);

  Dispatch workbook = Dispatch.invoke(workbooks, "Open", Dispatch.Method, new Object[]{els, new Variant(false),new Variant(false)}, new int[3]).toDispatch();

  Dispatch.invoke(workbook, "SaveAs", Dispatch.Method, new Object[] {

  pdf, new Variant(57), new Variant(false),

  new Variant(57), new Variant(57), new Variant(false),

  new Variant(true), new Variant(57), new Variant(true),

  new Variant(true), new Variant(true) }, new int[1]);

  Variant f = new Variant(false);

  System.out.println("to pdf " + pdf);

  Dispatch.call(workbook, "Close", f);

  long end = System.currentTimeMillis();

  System.out.println("completed..used:" + (end - start)/1000 + " s");

  } catch (Exception e) {

  System.out.println("========Error:Operation fail:" + e.getMessage());

  }finally {

  if (app != null){

  app.invoke("Quit", new Variant[] {});

  }

  }

  }

  public static void main(String[] args) {

  els2pdf("f:ProjectTemplate.xlsx","f:pdf.pdf");

  }

  }

  运行以上环境,需要下载jacob的包,该包还包含2个dll文件,一个是jacob-1.17-x64.dll,这个是64位的,还有一个是jacob-1.17-x86.dll文件,这个是32位的。将jar包包含到classpath目录,dll文件包含到jre/bin目录即可

时间: 2024-11-02 00:23:49

java 将excel文件转换成pdf文件的相关文章

急急, C# 如何将 word 文件转换成 Pdf 文件!

问题描述 需要做一个小软件,固定word文件路径就可以了,转换成pdf文件,应该如何做啊,谢谢大家 解决方案 解决方案二:LZ接着:解决方案三:很多控件的www.sautinsoft.com解决方案四:知不知道怎么让打印的文件保存到指定路径下面

Linux不用使用软件把纯文本文档转换成PDF文件的方法

  现在有很多软件能够将文本文件转换成PDF文件,其实在Linux系统中,不用使用软件也能将文本文本转换成PDF,只需轻松两步,下面小编就给大家介绍下Linux将文本文件转换成PDF文件的方法. 问题:我想要将一个纯文本文件转换成PDF文档.在Linux命令行下是否有一个简单的方法将文本文件转换成PDF文件? 当你有一大堆文本文件要维护的时候,把它们转换成PDF文档会好一些.比如,PDF更适合打印,因为PDF文档有预定义布局.除此之外,还可以减少文档被意外修改的风险. 要将文本文件转换成PDF格

工具-Linux系统下java程序如何将PDF文件转换成SWF文件

问题描述 Linux系统下java程序如何将PDF文件转换成SWF文件 我需要将PDF文件转换成SWF格式的文件,目前是用windows系统开发java程序,windows系统中这种转型已经搞定,用的是swftools工具.但是开发完成之后,程序要部署到Linux系统中.由于不熟悉Linux系统所以无从下手,希望高手指点,最好也用swftools工具转型,尽量详细一些,跪谢. 解决方案 前不久刚用过,应该注意的是swftools工具在linux的安装,有时需要依赖才能安装下去,这个工具安装好就基

java调用com组件将office文件转换成pdf (同发csdn)

在很多企业级应用中都涉及到将office图片转换成pdf进行保存或者发布的场景,因为pdf格式的文档方便进行加密和权限控制(类似于百度文库).总结起来目前将office文件转换 成pdf的方法主要有两种:  1.利用jcob调用ms office的com组件,将office文档转换成pdf.  2.利用jcob调用acrobat将office文档转换成pdf.  在实际使用中发现,由于office不同所以本的文件格式不一致,所以任何第三方的转化工具都不可能完美的兼容所有office版本,最好的方

swf-Linux系统下java程序如何将PDF文件转换成SWF文件

问题描述 Linux系统下java程序如何将PDF文件转换成SWF文件 我需要将PDF文件转换成SWF格式的文件,目前是用windows系统开发java程序,windows系统中这种转型已经搞定,用的是swftools工具,版本是swftools-2013-04-09-1007. 程序开发完成后,需要要部署到Linux系统中.在网上Linux实现的例子比较少,尝试了很多次都没能成功.我现在有Linux系统的swftools-2013-04-09-1007.tar.gz工具,有已经实现功能的朋友,

word文件怎么转换成pdf文件

  1.用Microsoft Word2007打开你的文档,文档中单击最左上角的"Office"按钮,从弹出菜单中选择"另存为"命令边上的小三角形,再选择弹出菜单中的"PDF或XPS". 2.为了详细的设置要发布的PDF文档,我们单击对话框中的"选项"按钮,从弹出的"选项"对话框中按我们的需要进行相关设置,比如只将某几页内容转换成PDF文件. 3.设置好后单击"确定"按钮即可,返回&qu

如何将jpg转换成pdf文件

现在很多朋友都有收集美图爱好,可是图片收集后,如果要欣赏的话只能一张张打开,特别是图片收集多了之后,管理也变得非常的麻烦.很多用户就会想,能不能将图片直接制作成PDF,那么大家就能方便的对图片进行浏览,而且还能保证图片完美的效果.可是,大家都知道,jpg图片和pdf文件是两个不相关的文件格式,我们很难直接将jpg转换成pdf,在这种情况下,我们要如何将jpg转换成 pdf呢? 小编也是个图片收集爱好者,电脑硬盘中存储着各种杂乱的图片,查看起来非常的麻烦.所以小编就将图片类别整理开,再将同一类别的

java如何将 xls(xls报表)文件转换成cll文件(华表报表)

问题描述 java如何将xls(xls报表)文件转换成cll文件(华表报表)说明:华表报表保存出来的是.cll文件的所以说我现在想把xls报表转换成cll报表的,请问如何处理是好呀!!!谢谢各位了!!!! 解决方案 解决方案二:没有人知道吗?解决方案三:该回复于2011-03-26 12:03:13被版主删除解决方案四:三楼的链接我看了好像对我没有帮助的呀解决方案五:高手呀出来帮帮忙呀!!!

java中如何使用poi3.10将docx文件转换成html文件?

问题描述 java中如何使用poi3.10将docx文件转换成html文件? java 中poi3.10怎么读取docx版本的文档为html 解决方案 没有直接的办法,建议你命令行调用doc2html这个命令http://download.csdn.net/download/JackLee361604415/2747309 或者参考http://www.codeforge.cn/read/250240/Doc2Html.java__html 解决方案二: 用java生成html文件用java生成