- 浏览: 195055 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
iwwenbo:
虽然看不懂,但觉得很牛叉,专门注册账号赞一个
Java结合docx4j生成docx文件 -
SE_XiaoFeng:
为何会是明文的密码呢?用户的密码,比较简单的处理会使用MD5进 ...
在web应用程序中怎么检测firefox中已经开启firebug -
myclover:
wilsonchen 写道谢谢您的帮助^_^填充完第一页继续填 ...
Java结合docx4j生成docx文件 -
wilsonchen:
谢谢您的帮助^_^填充完第一页继续填充第二页,或者使用文档合并 ...
Java结合docx4j生成docx文件 -
myclover:
wilsonchen 写道楼主,请教您一个问题:如何利用doc ...
Java结合docx4j生成docx文件
在实际项目中经常需要导出Word文档,Itext是其中一种选择,使用Itext导出Word文档时需要导入iText-2.1.7.jar和iText-rtf-2.1.7.jar两个jar,具体实现如下代码所示:
package com.myclover.utils.file; import java.awt.Color; import com.lowagie.text.Chunk; import com.lowagie.text.Font; import com.lowagie.text.Paragraph; import com.lowagie.text.Phrase; public class DocStyleUtils { /** * 功能说明:设置字体的样式,颜色为黑色</BR> * 修改日期:2011-04-27 * @author myclover * @param family 字体类型 * @param size 字体大小,22f为二号,18f为小二号,16f为三号 * @param style 字体样式 * @return */ public static Font setFontStyle(String family , float size , int style){ return setFontStyle(family, Color.BLACK, size, style); } /** * 功能说明:设置字体的样式</BR> * 修改日期:2011-04-27 * @author myclover * @param family 字体类型 * @param color 字体颜色 * @param size 字体大小,22f为二号,18f为小二号,16f为三号 * @param style 字体样式 * @return */ public static Font setFontStyle(String family , Color color , float size , int style){ Font font = new Font(); font.setFamily(family); font.setColor(color); font.setSize(size); font.setStyle(style); return font; } /** * 功能说明:为文字填充浅灰色背景</BR> * 修改日期:2011-04-27 * @author myclover * @param content 需要填充背景颜色的内容 * @param appendStr 不需要填充背景颜色的内容 * @return */ private static Phrase setPhraseStyle(String content , String appendStr){ Chunk chunk = new Chunk(content); //填充的背景颜色为浅灰色 chunk.setBackground(Color.LIGHT_GRAY); Phrase phrase = new Phrase(chunk); phrase.add(appendStr); return phrase; } /** * 功能说明:设置段落的样式,设置前半截内容和后半截内容格式不一样的段落样式</BR> * 修改日:2011-04-27 * @author myclover * @param content 前半截内容 * @param font 字体的样式 * @param firstLineIndent 首行缩进多少字符,16f约等于一个字符 * @param appendStr 后半截内容 * @return */ public static Paragraph setParagraphStyle(String content , Font font , float firstLineIndent , String appendStr){ Paragraph par = setParagraphStyle(content, font, 0f, 12f); Phrase phrase = new Phrase(); phrase.add(par); phrase.add(appendStr); Paragraph paragraph = new Paragraph(phrase); paragraph.setFirstLineIndent(firstLineIndent); //设置对齐方式为两端对齐 paragraph.setAlignment(Paragraph.ALIGN_JUSTIFIED_ALL); return paragraph; } /** * 功能说明:设置段落的样式,设置前半截内容填充了浅灰色的背景颜色,后半截内容没有背景颜色的段落样式</BR> * 修改日期:2011-04-27 * @author myclover * @param content 前半截有背景颜色的内容 * @param font 字体的样式 * @param firstLineIndent 首行缩进的字符,16f约等于一个字符 * @param leading 行间距12f表示单倍行距 * @param appendStr 后半截内容 * @return */ public static Paragraph setParagraphStyle(String content , Font font , float firstLineIndent , float leading , String appendStr){ Phrase phrase = setPhraseStyle(content , appendStr); Paragraph par = new Paragraph(phrase); par.setFont(font); par.setFirstLineIndent(firstLineIndent); par.setLeading(leading); //设置对齐方式为两端对齐 par.setAlignment(Paragraph.ALIGN_JUSTIFIED_ALL); return par; } /** * 功能说明:设置段落的样式,一般用于设置标题</BR> * 修改日期:2011-04-27 * @author myclover * @param content 段落的内容 * @param font 字体样式 * @param leading 行间距 * @param alignment 对齐方式 * @return */ public static Paragraph setParagraphStyle(String content , Font font , float leading , int alignment){ return setParagraphStyle(content, font, 0f, leading, 0f, alignment); } /** * 功能说明:设置段落的样式,对齐方式为两端对齐,缩进样式是文本之后0.2毫米</BR> * 修改日期:2011-04-27 * @author myclover * @param content 段落的内容 * @param font 字体的样式 * @param firstLineIndent 首行缩进多少字符,16f约等于一个字符 * @param leading 行间距 * @return */ public static Paragraph setParagraphStyle(String content , Font font , float firstLineIndent , float leading){ return setParagraphStyle(content, font, firstLineIndent, leading, 0.6f, Paragraph.ALIGN_JUSTIFIED_ALL); } /** * 功能说明:设置段落的样式</BR> * 修改日期:2011-04-27 * @author myclover * @param content 段落的内容 * @param font 字体的样式 * @param firstLineIndent 首行缩进多少字符,16f约等于一个字符 * @param leading 行间距 * @param indentationRight 缩进样式中的文本之后多少毫米,0.6f相当于0.2毫米 * @param alignment 对齐方式 * @return */ public static Paragraph setParagraphStyle(String content , Font font , float firstLineIndent , float leading , float indentationRight , int alignment){ Paragraph par = new Paragraph(content, font); par.setFirstLineIndent(firstLineIndent); par.setLeading(leading); par.setIndentationRight(indentationRight); par.setAlignment(alignment); return par; } }
测试类如下:
package com.myclover.utils.file; import java.io.File; import java.io.FileOutputStream; import jxl.Workbook; import jxl.format.Alignment; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import com.lowagie.text.Document; import com.lowagie.text.Font; import com.lowagie.text.Paragraph; import com.lowagie.text.rtf.RtfWriter2; public class TestDoc { /** * @param args */ public static void main(String[] args) { exportDoc("D:\\test.doc"); } public static void exportDoc(String fileName){ try { Document doc = new Document(); RtfWriter2.getInstance(doc, new FileOutputStream(fileName)); // 打开文档 doc.open(); //设置页边距,上、下25.4毫米,即为72f,左、右31.8毫米,即为90f doc.setMargins(90f, 90f, 72f, 72f); //设置标题字体样式,粗体、二号、华文中宋 Font tfont = DocStyleUtils.setFontStyle("华文中宋", 22f, Font.BOLD); //设置正文内容的字体样式,常规、三号、仿宋_GB2312 Font bfont = DocStyleUtils.setFontStyle("仿宋_GB2312", 16f, Font.NORMAL); //构建标题,居中对齐,12f表示单倍行距 Paragraph title = DocStyleUtils.setParagraphStyle("测试Itext导出Word文档", tfont, 12f, Paragraph.ALIGN_CENTER); //构建正文内容 StringBuffer contentSb = new StringBuffer(); contentSb.append("最近项目很忙,这个是项目中使用到的,所以现在总结一下,以便今后可以参考使用,"); contentSb.append("2011年4月27日 — 2011年5月20日,对以下技术进行使用,"); contentSb.append("Itext、"); contentSb.append("Excel、"); contentSb.append("Word、"); contentSb.append("PPT。"); //首行缩进2字符,行间距1.5倍行距 Paragraph bodyPar = DocStyleUtils.setParagraphStyle(contentSb.toString(), bfont, 32f, 18f); Paragraph bodyEndPar = DocStyleUtils.setParagraphStyle("截至2011年4月28日,各种技术已经完全实现。", bfont, 32f, 18f); //设置空行 Paragraph blankRow = new Paragraph(18f, " ", bfont); Paragraph deptPar = DocStyleUtils.setParagraphStyle("(技术开发部盖章)", bfont, 12f, Paragraph.ALIGN_RIGHT); Paragraph datePar = DocStyleUtils.setParagraphStyle("2011-04-30", bfont, 12f, Paragraph.ALIGN_RIGHT); //向文档中添加内容 doc.add(title); doc.add(blankRow); doc.add(bodyPar); doc.add(bodyEndPar); doc.add(blankRow); doc.add(blankRow); doc.add(blankRow); doc.add(deptPar); doc.add(datePar); //最后一定要记住关闭 doc.close(); } catch (Exception e) { e.printStackTrace(); } } }
- lib.rar (1.1 MB)
- 下载次数: 236
评论
6 楼
cilendeng
2013-01-11
求教:如何在导出的时候,在段落间,生成一条水平线
5 楼
Flyxiaowu
2012-05-13
我想问的是你的仿宋_GB2312是怎么搞定的,为啥我这个在word里面显示的还是宋体啊!
4 楼
myclover
2011-11-11
yangcan 写道
楼主写的不错啊,很实用。
有文档结构图的例子没?
有文档结构图的例子没?
这个没有哦,你可以直接试一下啊,看下api,应该有支持的。
3 楼
yangcan
2011-11-08
楼主写的不错啊,很实用。
有文档结构图的例子没?
有文档结构图的例子没?
2 楼
myclover
2011-08-30
xiaowei3856 写道
怎么解决 Paragraph 找不到 setFont()方法啊
你的是什么版本?估计是版本的问题!
1 楼
xiaowei3856
2011-08-29
怎么解决 Paragraph 找不到 setFont()方法啊
发表评论
-
Java结合docx4j生成docx文件
2012-06-07 09:55 8800平时项目中经常碰到报表的生成,在此简单描述下使用java结合d ... -
一些java程序员面试笔试常见的题
2011-05-15 10:46 1806在群里经常碰到很多找工作的朋友回来就谈论自己的面试经历,被问到 ... -
实现二叉查找的两种方法
2011-05-15 10:31 1089在群里经常看到很多网友面试回来说又考了二叉查找,但是搞不懂咋个 ... -
JXL操作Excel的例子
2011-05-15 10:25 2054在实际项目中经常需要对一些汇总进行导出到Excel表格中,jx ... -
一些笔试面试题
2011-03-19 11:46 1255最近有些网友给我QQ上或者在群里问了一些面试题,有些很简单,有 ... -
一个简单的String操作工具类
2010-08-31 20:34 2976对一些常用的方法进行简单的封装,有些正则表达式来源于网络,要是 ... -
一个简单的日期操作工具类
2010-08-30 21:53 1413在很多项目中都需要对日期进行操作或是转换,在此对日期操作做了一 ... -
一个java文件操作工具类
2010-08-04 19:28 2730最近在写一些文件操作 ... -
在Tomcat中JNDI的配置
2009-09-29 11:35 17781.在tomcat6.0下的配置。这两种版本的配置方法有点 ... -
不要做浮躁的人
2009-09-29 11:25 8331.不要看到别人的回复 ... -
一个JAVA编写的MD5加密程序
2009-08-05 13:48 1504package com.myclover.java.t ... -
Eclipse快捷键大全
2009-03-22 13:37 1082Ctrl+1 快速修复(最经典的快捷键) Ctrl+D: 删 ... -
一个JAVA面试程序题
2009-03-22 13:24 2197用1、2、2、3、4、5这六个数字,用java写一个main函 ... -
几道JAVA面试题目
2009-03-22 13:17 1329JAVA面试题 1. abstract class Name ... -
Java语法总结 - 内部类
2009-03-22 13:11 1189从Java1.1开始引入了内部类以来,它就引起了人们的激烈争论 ... -
Java语法总结 - 方法
2009-03-22 13:10 12291、重写只能出现在继承关系之中。当一个类继承它的父类方法时 ... -
张孝祥的Java邮件开发源代码
2009-03-21 15:05 1321这是在传智播客网上面下的张孝祥老师的Java邮件开发源代码,需 ... -
javaapplet实例讲解
2009-03-21 15:03 2523一个javaapplet实例的开发详解的例子和文档 -
IntelliJ IDEA使用技巧一览表
2009-03-21 09:25 20861、写代码时用Alt-Insert ... -
IntelliJ IDEA快捷键
2009-03-21 09:19 15029使用了一段时间的Intelli ...
相关推荐
为了使用iText导出Word文档,你需要在项目中引入iText库。对于Java项目,可以通过Maven或Gradle添加依赖。在Maven的pom.xml文件中,添加以下依赖: ```xml <groupId>com.itextpdf</groupId> <artifactId>itext...
在这个例子中,我们将深入探讨如何利用IText库来导出Word文档,以便于在各种场合下生成定制化的报告、合同或任何其他需要文字处理的文档。 首先,了解IText库的基本概念是非常重要的。IText提供了丰富的API,允许...
在描述中提到的“导出word文档案例”,我们可以按照以下步骤来实现: 1. **初始化Document对象**:这是iText文档的基础,用于定义文档的结构。 2. **创建Paragraph和Table**:Paragraph用于添加文本,而Table可以...
以下是一个基本的代码示例,展示如何使用iText导出Word表格: ```java import com.itextpdf.text.*; import com.itextpdf.text.pdf.*; public class Demo { public static void main(String[] args) { try { ...
这个例子中的Java代码展示了如何利用iText创建一个包含文本、表格和图片的Word文档。注意,对于更复杂的操作,如调整表格样式、添加超链接等,iText提供了丰富的API供开发者使用。在实际项目中,你可以根据具体需求...
在Java编程环境中,导出Word文档是一项常见的任务,特别是在企业级应用中,如报表生成、数据导出等。为了实现这一功能,开发者可以利用第三方库,例如本文提及的`iText`库。`iText`是一个强大的PDF处理库,但它同样...
在IT行业中,生成PDF文件是常见的需求,尤其是在报告、文档或证书的生成上。Java作为一个强大的后端开发语言,提供了多种库来实现这一功能。本文将深入探讨如何使用iText7这个库在Java环境中生成带有页码和目录的PDF...
4. **合并PDF**:支持将多个PDF文档合并成一个单一的PDF文件。 二、iText-RTF模块 iText-RTF是iText的一个扩展,专门用于处理RTF(Rich Text Format)文档。RTF是一种通用的文本格式,可以在多种文字处理软件之间...
在Java编程中,有时我们需要处理与文档相关的任务,例如创建、编辑或导出Word文档。Java库JACOB(Java Advanced COM Bridge)提供了一种方法来操作Microsoft Office应用程序,包括Word,进行写操作。然而,本示例...
在SpringBoot项目中,我们经常需要处理Excel文件的导入与导出功能,这在数据分析、数据交换等场景中尤其常见。Apache POI 是一个流行的Java库,它允许开发者读写Microsoft Office格式的文件,包括Excel。下面我们将...
首先,我们来了解几种常见的Java导出Word文档的解决方案: 1. **Jacob**:Java-COM Bridge,允许Java调用COM组件,如Microsoft Word。但此方法仅适用于Windows平台,有一定的局限性。 2. **Apache POI**:这是一个...
- 可以结合其他库,如Apache POI和iText,实现更复杂的PDF或Word文档生成。 这个教程和示例代码将引导你逐步理解Java POI的使用,无论是创建简单的数据表格还是复杂的文档结构,都能提供必要的帮助。通过实践这些...
以下是一个使用iText的例子: ```java StringWriter writer = new StringWriter(); template.process(model, writer); Document document = new Document(); PdfWriter.getInstance(document, new ...
与之相比,尽管有一些其他的Java库,如itext,用于支持Word格式,但它们还在发展中,而HSSF已经足够稳定和成熟,适用于大多数业务需求。此外,虽然存在如永中Office这样的纯Java商业解决方案,但它们通常不提供源...
EJB中JNDI的使用源码例子 1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件...