1、 Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用。DLL动态链接库的生成需要windows平台的支持。

2、 Apache POI包括一系列的API,它们可以操作基于MicroSoft OLE 2 Compound Document Format的各种格式文件,可以通过这些API在Java中读写Excel、Word等文件。他的excel处理很强大,对于word还局限于读取,目前只能实现一些简单文件的操作,不能设置样式。

3、 Java2word是一个在java程序中调用 MS Office Word 文档的组件(类库)。该组件提供了一组简单的接口,以便java程序调用他的服务操作Word 文档。

这些服务包括: 打开文档、新建文档、查找文字、替换文字,插入文字、插入图片、插入表格,在书签处插入文字、插入图片、插入表格等。填充数据到表格中读取表格数据

,1.1版增强的功能:

指定文本样式,指定表格样式。如此,则可动态排版word文档。

4、

iText操作Excel还行。对于复杂的大量的word也是噩梦。用法很简单, 但是功能很少, 不能设置打印方向等问题。

5、

JSP输出样式基本不达标,而且要打印出来就更是惨不忍睹。

6、

用XML做就很简单了。Word从2003开始支持XML格式,大致的思路是先用office2003或者2007编辑好word的样式,然后另存为xml,将xml翻译为FreeMarker模板,最后用java来解析FreeMarker模板并输出Doc。经测试这样方式生成的word文档完全符合office标准,样式、内容控制非常便利,打印也不会变形,生成的文档和office中编辑文档完全一样。

java生成pdf方案总结

1. Jasper

Report生成pdf:设计思路是先生成模板,然后得到数据,最后将两者整合得到结果。但是Jasper Report的问题在于,其生成模板的方式过于复杂,即使有IDE的帮助,我们还是需要对其中的众多规则有所了解才行,否则就会给调试带来极大的麻烦。

2. openoffice生成pdf:openoffice是开源软件且能在windows和linux平台下运行。

3. itext + flying saucer生成pdf:itext和flying saucer都是免费开源的,且与平台无关,结合css和velocity技术,可以很好的实现。

一般使用第三种方案比较多,它实现的步骤是非常简单的。

JAVA生成word优缺点对比

所用技术

优点

缺点

Jacob

功能强大

代码量大,设置样式繁琐;需要windows平台支持,无法跨平台

Apache POI

读写excel功能强大、操作简单

一般只用它读取word,能够创建简单的word,不能设置样式,功能太少

Java2word

功能强大,操作简单

能满足一般要求,不支持07格式,国人开发的,参考资料较多,需要windows平台支持

iText

功能全,能满足一般要求

不能直接生成或操作doc文档,只能生成rtf格式的文档,rtf也可以用word打开

JSP

操作简单,代码量少

能把当前页面导出简单的word,不能设置样式,美观性差,无法操作word

XML(最佳)

代码量少,样式、内容容易控制,打印不变形,完全符合office标准

需要提前设计好word模板,把需要替换的地方用特殊标记标出来

JAVA生成pdf优缺点对比

所用技术

优点

缺点

openoffice

本身就是office软件,很容易设计一些文档模板,支持java调用实现word转换成pdf

需要先安装,设计好pdf模板样式,然后用程序来填充那些预留好的变量

itext

能满足要求,本身提供了一些api

无法识别很多html的tag和attribute,无法识别css,需要用其api函数来设置样式

Jasper Report

能满足要求,市面上使用的比较多,相关文档多

复杂,很难完全掌握,需要先设计模板,强依赖于IDE进行可视化编辑

flying sauser(最佳)

能解析html和css输出成image、pdf等格式,操作简单,api强大

需要编写freemarker或velocity模板,打造html,勾画pdf的样式

java生成word排版_java生成word的几种方案(转)相关推荐

  1. java生成word排版_java生成word(文字和图片)

    1.整体思路 利用xml模板,在模板中预留占位标识(${yourContent}),然后将xml转为ftl文件,通过Map传值填充对应的内容即可,word其实和html一样,也有自己的xml标签,表头 ...

  2. word排版之生成目录页码不右对齐

    原文地址为: word排版之生成目录页码不右对齐 用word生成目录时,由于某种原因造成目录的页码参差不齐,页码没有靠右对齐,如上图. 这时可以再生成目录对话框中修改相关选项来更正这个错误. 在< ...

  3. java word插件开发_java生成word的几种方案

    1. Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁.使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用 ...

  4. java word 模板_java通过word模板生成word文档

    public static void main(String[] args) { //模板.文件.图片路径 String workPath=System.getProperty("user. ...

  5. java 文件 模板 替换_JAVA 处理Word模板文件,替换其中的占位符

    1.java处理word是个大大的坑,无论是poi还是Java2word 都不是尽善尽美. 2.poi只能进行简单读操作,Java2word需要调用系统的com接口,系统机必须安装office和动态链 ...

  6. java doc转图片_Java 将word文档转换为PNG、XPS、RTF等格式

    在日常办公中,Word是一种很好的文档排版工具.在Word创建好文档后, 我们常常需要将其保存为PDF.图片或其他格式.本文就将通过使用Java程序来演示如何将Word文档转换为PNG.XPS.RTF ...

  7. java word表格_java操作word的表格

    java操作word的表格 最近项目中需要把提交的页面表单的数据动态写在word模板中,简单的写了个工具类.里面有怎眼操作word 中表格的内容,可以在word中已有的表格后面添加行并且可以增加内容. ...

  8. java生成小图片_JAVA生成缩略小图片类

    JAVA生成缩略小图片类 java.awt.image.BufferedImage是缓冲图片类主要将生成的图片对象缓冲起来:javax.imageio.ImageIO是图片IO控制类,可以将缓冲图片对 ...

  9. java 生成校验验证码_java生成验证码并进行验证

    一实现思路使用BufferedImage用于在内存中存储生成的验证码图片使用Graphics来进行验证码图片的绘制,并将绘制在图片上的验证码存放到session中用于后续验证 最后通过ImageIO将 ...

  10. java如何解析word大纲_java解析word文件

    POI是Apache的一个开源项目,可以到Apache网站下载相应的jar包文件,及其源文件. POI提供了提取一些非TXT文本中文本内容的API,比如提取Word,Excel等,使用起来非常方便. ...

最新文章

  1. XDP/eBPF — 基于 eBPF 的 Linux Kernel 可观测性
  2. 深度优先搜索 和问题 简单函数递归 “加 还是不加”
  3. 计算机科学和机器学习中的代数学、拓扑学、微积分以及最优化理论
  4. word2vec原理_深入理解Word2Vec底层原理
  5. mfc怎么显示jpg png图像
  6. 可视化 nltk_词嵌入:具有Genism,NLTK和t-SNE可视化的Word2Vec
  7. 第一次接触万物接对象
  8. 启动计算机时页面配置出现问题,开机提示“由于启动计算机时出现了页面配置问题…”...
  9. W801单片机学习笔记——内部结构,总线架构篇
  10. 两台计算机远程桌面连接不上去,远程桌面连接不上怎么办
  11. 计算机用户原始密码是多少,administrator初始密码是多少
  12. 如何修改Notes邮箱中的收件箱标题宽度
  13. 电脑自动打开代理服务器无法上网解决方案
  14. 孟子:生于忧患,死于安乐
  15. 数据库系统设计_银行业务管理系统
  16. CodeForces-1016C Vasya And The Mushrooms(模拟+思维+前缀和的前缀和) 解题报告 Apare_xzc
  17. 关键词排名提升(提升关键词排名的方法)
  18. 不会被和谐的良心云端储存网盘? 试试MEGA吧!
  19. 人体骨骼关键点检测的算法
  20. DCN神州数码交换机端口安全配置命令(纯命令)

热门文章

  1. Java基础IDEA快捷键
  2. python连接池 commit,连接池请求Python
  3. php字符串操作整理,PHP学习之整理字符串
  4. 华为私有云的搭建方案_私有云平台搭建物业管理系统
  5. observable java_RxJava之Observables类型理解
  6. 我的世界java版和基岩版对比_我的世界 Java版 与 基岩版 有什么区别?
  7. 微信跳一跳PHP刷分源码,可实现在线刷分。非原创
  8. iptables应用
  9. 为什么微软应该通过收购Docker来与Kubernetes竞争
  10. SpringMVC Hello World