`
tayuexiaotian
  • 浏览: 24882 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

添加图片

 
阅读更多
利用iText生成word文档例子参考
2010年12月09日 星期四 21:46
利用iText生成word文档例子参考
package com.sample;

import java.awt.Color;
import java.io.FileOutputStream;
import java.io.IOException;

import com.lowagie.text.Cell;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Element;
import com.lowagie.text.Font;
import com.lowagie.text.FontFactory;
import com.lowagie.text.Image;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Phrase;
import com.lowagie.text.Table;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.rtf.RtfWriter2;

/**
*
* @author wangyanjun
* @email bd_wyj@sina.com
* @createDate Jun 12, 2008
*/
public class CreateWordDemo {

public void createDocContext(String file) throws DocumentException,
IOException {
// 设置纸张大小
Document document = new Document(PageSize.A4);
// 建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中
RtfWriter2.getInstance(document, new FileOutputStream(file));
document.open();
// 设置中文字体
BaseFont bfChinese = BaseFont.createFont("STSongStd-Light",
"UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
// 标题字体风格
Font titleFont = new Font(bfChinese, 12, Font.BOLD);
// 正文字体风格
Font contextFont = new Font(bfChinese, 10, Font.NORMAL);
Paragraph title = new Paragraph("标题");
// 设置标题格式对齐方式
title.setAlignment(Element.ALIGN_CENTER);
title.setFont(titleFont);
document.add(title);

String contextString = "iText是一个能够快速产生PDF文件的java类库。"
+ " \n"// 换行
+ "iText的java类对于那些要产生包含文本,"
+ "表格,图形的只读文档是很有用的。它的类库尤其与java Servlet有很好的给合。"
+ "使用iText与PDF能够使你正确的控制Servlet的输出。";
Paragraph context = new Paragraph(contextString);
// 正文格式左对齐
context.setAlignment(Element.ALIGN_LEFT);
context.setFont(contextFont);
// 离上一段落(标题)空的行数
context.setSpacingBefore(5);
// 设置第一行空的列数
context.setFirstLineIndent(20);
document.add(context);

        //利用类FontFactory结合Font和Color可以设置各种各样字体样式
/**
* Font.UNDERLINE 下划线,Font.BOLD 粗体
*/
Paragraph underline = new Paragraph("下划线的实现", FontFactory.getFont(
FontFactory.HELVETICA_BOLDOBLIQUE, 18, Font.UNDERLINE,
new Color(0, 0, 255)));
document.add(underline);

// 设置 Table 表格
Table aTable = new Table(3);
int width[] = {25,25,50};
aTable.setWidths(width);//设置每列所占比例
aTable.setWidth(90); // 占页面宽度 90%

aTable.setAlignment(Element.ALIGN_CENTER);//居中显示
aTable.setAlignment(Element.ALIGN_MIDDLE);//纵向居中显示
aTable.setAutoFillEmptyCells(true); //自动填满
aTable.setBorderWidth(1); //边框宽度
aTable.setBorderColor(new Color(0, 125, 255)); //边框颜色
aTable.setPadding(2);//衬距,看效果就知道什么意思了
aTable.setSpacing(3);//即单元格之间的间距
aTable.setBorder(2);//边框

//设置表头
/**
* cell.setHeader(true);是将该单元格作为表头信息显示;
* cell.setColspan(3);指定了该单元格占3列;
* 为表格添加表头信息时,要注意的是一旦表头信息添加完了之后,
* 必须调用 endHeaders()方法,否则当表格跨页后,表头信息不会再显示
*/
Cell haderCell = new Cell("表格表头");
haderCell.setHeader(true);
haderCell.setColspan(3);
aTable.addCell(haderCell);
aTable.endHeaders();

Font fontChinese = new Font(bfChinese, 12, Font.NORMAL, Color.GREEN);
Cell cell = new Cell(new Phrase("这是一个测试的 3*3 Table 数据", fontChinese ));
cell.setVerticalAlignment(Element.ALIGN_TOP);
cell.setBorderColor(new Color(255, 0, 0));
cell.setRowspan(2);
aTable.addCell(cell);

aTable.addCell(new Cell("#1"));
aTable.addCell(new Cell("#2"));
aTable.addCell(new Cell("#3"));
aTable.addCell(new Cell("#4"));
Cell cell3 = new Cell(new Phrase("一行三列数据", fontChinese ));
cell3.setColspan(3);
cell3.setVerticalAlignment(Element.ALIGN_CENTER);
aTable.addCell(cell3);

document.add(aTable);
document.add(new Paragraph("\n"));
//添加图片
Image img=Image.getInstance("d:\\img01800.jpg");
img.setAbsolutePosition(0, 0);
img.setAlignment(Image.RIGHT);//设置图片显示位置
img.scaleAbsolute(12,35);//直接设定显示尺寸
img.scalePercent(50);//表示显示的大小为原尺寸的50%
img.scalePercent(25, 12);//图像高宽的显示比例
img.setRotation(30);//图像旋转一定角度
document.add(img);

document.close();
}

/**
* @param args
*/
public static void main(String[] args) {
CreateWordDemo word = new CreateWordDemo();
String file = "c:/demo1.doc";
try {
word.createDocContext(file);
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}

}

//设置居中,原代码中的不好用
cell.setHorizontalAlignment(Element.ALIGN_CENTER); //水平居中
cell.setVerticalAlignment(Element.ALIGN_MIDDLE); //垂直居中
分享到:
评论

相关推荐

    java实现PDF文件添加图片

    PDF文件添加图片是Java开发中常见的一项任务,特别是在生成报告、文档或证书等场景下,可能需要将图像插入到PDF中以增强可视化效果。这里我们将深入探讨如何使用iTextPDF库来实现在PDF中添加图片的功能。 iTextPDF...

    动态向Picture Control控件中添加图片

    本篇将详细介绍如何动态地向Picture Control控件中添加.bmp、.jpg、.gif三种常见图像格式的图片。 首先,我们需要理解Picture Control控件。它是Visual Basic或VC++等IDE(集成开发环境)中的一个图形对象,可以...

    Protel99se添加图片工具

    在电路设计过程中,有时我们需要将图形或图片(例如符号、商标、图表等)集成到电路原理图或PCB布局中,这就需要用到添加图片的功能。本工具专门针对Protel99se,能够帮助用户将 BMP 格式的图像文件转换并整合进设计...

    itextpdf在已有pdf指定页及位置添加图片(包含jar及实例)

    然而,有时我们需要对PDF进行编辑,比如在已有的PDF页面上添加图片。这里我们将深入探讨如何使用Java和iTextPDF库来实现这一功能。 iTextPDF是一个开源的Java库,专门用于创建、修改和处理PDF文档。它提供了丰富的...

    android 动态添加图片

    在Android开发中,动态添加图片是一项常见的需求,例如在创建社交动态、编辑个人资料或实现图片选择器等场景。本文将深入探讨如何在Android应用中实现动态添加图片,并结合提供的`multiimagechooser-master`项目进行...

    如何在JTable的单元格里添加图片,Button组件,Label组件等等组件

    组件(JButton,JLable...)继承相应的组件,并且implements TableCellRenderer,图片的方式是,将图片添加该组件中就可以了,具体方式是加入到重写的方法中.this.setIcon("path"),就可以了 3.设置Table的...

    使用gridView完成添加图片功能

    因为工作需求最近研究了图片上传的代码,这个demo是自己整理后应用的,添加图片是仿照微信上传图片时的弹出框,包含拍照和本地图片选取两部分,并且无论是本地选择相片还是拍照上传相片都带有裁剪功能,上传的图片...

    如何在JAVA中添加图片

    在Java编程语言中,添加和显示图片是一项常见的需求,特别是在创建图形用户界面(GUI)或者进行游戏开发时。本文将详细讲解如何在Java程序中添加并显示图片。 首先,我们需要了解Java中的`javax.swing.ImageIcon`类...

    C# Form利用FlowLayoutPanel做动态添加图片功能(图片可拖拽、重绘)

    在C# WinForms开发中,有时我们需要实现一个用户界面,允许用户动态地添加、移动和管理图片。本教程将深入探讨如何使用FlowLayoutPanel控件来实现这一功能,同时结合拖放操作和重绘技术,创建一个具有图片拖拽和重绘...

    用c#窗体实现向数据库中添加图片

    在C#编程环境中,开发一个窗体应用来向数据库中添加图片涉及到多个步骤和技术。首先,我们需要理解如何处理图像文件,然后将它们转换为二进制数据,以便于存储在数据库中。通常,数据库系统如SQL Server不直接支持...

    向Listbox列表框添加图片

    然而,有时我们可能需要在Listbox中不仅显示文本,还希望能够添加图片,以增加界面的视觉效果和用户体验。这篇教程将详细介绍如何在VB.NET中实现向Listbox列表框添加图片的功能。 首先,我们需要了解Listbox控件的...

    .net Winform FlowLayoutPanel 动态添加图片(可拖拽、重绘)

    在这个特定的场景中,我们将在FlowLayoutPanel中动态添加图片,并实现图片的拖拽和重绘功能。下面将详细阐述这一技术实现的关键步骤和涉及的知识点。 首先,我们需要创建一个Winform应用,并在窗体上添加一个...

    android GridView 添加图片

    在这个场景下,"android GridView 添加图片"的主题涉及了如何在GridView中加载和操作图片,包括从图库选择图片、通过相机拍摄图片以及对图片进行剪切等操作。下面将详细介绍这些知识点。 1. **GridView的基本使用**...

    TextView中添加图片

    在TextView中添加图片的三种方式总结 1.使用SpannableString+ImageSpan 2.android:drawableBottom... 3。扩展TextView 复写onDraw

    android Itext生产PDF文件添加图片页眉的简单例子

    在Android开发中,有时我们需要生成包含复杂元素的PDF文件,比如添加图片作为页眉。`iText`是一个流行的Java库,适用于创建和编辑PDF文档,它同样适用于Android平台。在这个简单例子中,我们将探讨如何使用`iText`库...

    解决POI3.10 添加图片不成功的问题

    解决POI3.10在添加图片的时候自身有一个BUG。纠结了很久都没解决,今天终于弄好了,文件包中附带了修改好的jar包bsj-poi-ooxml-3.10-FINAL-20140208.jar。主要问题是出在:org.apache.poi.xwpf.usermodel.XWPFRun....

    GridView添加图片DeleteGridView

    在这个主题“GridView添加图片DeleteGridView”中,我们将深入探讨如何在GridView中集成图片展示,并提供删除功能。 首先,我们需要理解GridView的基本使用。GridView继承自AbsListView,通过Adapter来填充数据。...

    ecshop插件商品分类添加图片显示功能

    本主题主要关注的是“ECShop插件商品分类添加图片显示功能”,这是一个旨在提升用户体验和增强平台视觉吸引力的特性。 商品分类是电商网站的重要组成部分,它帮助用户快速找到他们感兴趣的商品。传统的商品分类通常...

    GridView动态添加图片

    在本项目"GridView动态添加图片"中,开发者通过 APK 的形式实现了一个功能,允许用户动态地向 GridView 添加图片,这些图片可以来自手机的即时拍照或从手机的相册(画廊)选择。下面将详细介绍这一功能的实现原理和...

    类似微信QQ评论添加图片(最多9张)

    本文将详细讲解如何实现“类似微信QQ评论添加图片”这一功能,包括利用GridView展示图片、动态从本地选取图片、通过相机拍照以及图片截取等关键步骤。 首先,我们需要创建一个GridView来展示图片。GridView是...

Global site tag (gtag.js) - Google Analytics