itext的学习使用
来源:互联网 发布:在淘宝买的机票怎么取 编辑:程序博客网 时间:2024/05/21 08:59
本文参考链接:http://blog.csdn.net/wanghuan203/article/details/9112473
http://www.myexception.cn/java-other/2041555.html
一、iText简介
iText是用于生成PDF文档的一个Java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件,也可以生成二维码和条形码。
二、Demo示例
用iText生成PDF文档需要5个步骤:
①建立com.itextpdf.text.Document对象的实例。
Document document= new Document();
②建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中。
PDFWriter.getInstance(document,new FileOutputStream("ITextTest.pdf"));
③打开文档。
document.open();
④向文档中添加内容。
document.add(newParagraph("IText Test"));
⑤关闭文档。
document.close();
通过上面的5个步骤,就能产生一个ITextTest.PDF的文件,文件内容为"ITextTest"。代码如下:
- importjava.io.FileOutputStream;
- importcom.itextpdf.text.BaseColor;
- importcom.itextpdf.text.Document;
- importcom.itextpdf.text.Element;
- importcom.itextpdf.text.Font;
- importcom.itextpdf.text.Paragraph;
- importcom.itextpdf.text.Rectangle;
- importcom.itextpdf.text.pdf.BaseFont;
- importcom.itextpdf.text.pdf.PdfPTable;
- importcom.itextpdf.text.pdf.PdfWriter;
- public class ToPDF{
- // 表头
- public static final String[] tableHeader= { "姓名", "性别", "年龄",
- "学院", "专业", "年级"};
- // 数据表字段数
- private static final int colNumber = 6;
- // 表格的设置
- private static final int spacing = 2;
- // 表格的设置
- private static final int padding = 2;
- // 导出Pdf文挡
- public static void exportPdfDocument() {
- // 创建文Pdf文挡50, 50, 50,50左右上下距离
- Document document = newDocument(new Rectangle(1500, 2000), 50, 50, 50,
- 50);
- try {
- //使用PDFWriter进行写文件操作
- PdfWriter.getInstance(document,new FileOutputStream(
- "d:\\学生信息.pdf"));
- document.open();
- // 中文字体
- BaseFont bfChinese =BaseFont.createFont("STSong-Light",
- "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);
- Font fontChinese = newFont(bfChinese, 12, Font.NORMAL);
- // 创建有colNumber(6)列的表格
- PdfPTable datatable = newPdfPTable(colNumber);
- //定义表格的宽度
- int[] cellsWidth = { 8, 2,2, 8, 5, 3 };
- datatable.setWidths(cellsWidth);
- // 表格的宽度百分比
- datatable.setWidthPercentage(100);
- datatable.getDefaultCell().setPadding(padding);
- datatable.getDefaultCell().setBorderWidth(spacing);
- //设置表格的底色
- datatable.getDefaultCell().setBackgroundColor(BaseColor.GREEN);
- datatable.getDefaultCell().setHorizontalAlignment(
- Element.ALIGN_CENTER);
- // 添加表头元素
- for (int i = 0; i <colNumber; i++) {
- datatable.addCell(newParagraph(tableHeader[i], fontChinese));
- }
- // 添加子元素
- for (int i = 0; i <colNumber; i++) {
- datatable.addCell(newParagraph(tableHeader[i], fontChinese));
- }
- document.add(datatable);
- } catch (Exception e) {
- e.printStackTrace();
- }
- document.close();
- }
- public static void main(String[] args)throws Exception {
- exportPdfDocument();
- }
- }
另外使用itext可以生成条形码和二维码 示例如下
条形码相关代码:
1.String strInfo="9009090909"; 2. 3.int barCodeWidth=150; 4.int barCodeHeight=60; 5.int HEIGHT_SPACE = 20; 6. 7.//图片宽度 8.int imageWidth = barCodeWidth; 9.// 图片高度 10.int imageHeight = barCodeHeight + HEIGHT_SPACE ; 11. 12.BufferedImage img = new BufferedImage(imageWidth, imageHeight,BufferedImage.TYPE_INT_RGB); 13. 14.Graphics2D g = (Graphics2D) img.getGraphics(); 15.g.fillRect(0, 0, imageWidth, imageHeight); 16. 17.Font font = new java.awt.Font("", java.awt.Font.PLAIN, 12); 18. 19.Barcode128 barcode128 = new Barcode128(); 20. 21.FontRenderContext fontRenderContext = g.getFontRenderContext(); 22. 23.//条形码(文字)的高度 24.int stringHeight = (int) font.getStringBounds("",fontRenderContext).getHeight(); 25.// 图片横坐标开始位置 26.int startX = 0; 27.// 图片纵坐标开始位置 28.int imageStartY = 0; 29.int stringStartY = imageHeight-8;// 条形码(文字)开始位置 30. 31.int codeWidth = (int) font.getStringBounds(strInfo, fontRenderContext).getWidth(); 32.barcode128.setCode(strInfo); 33.java.awt.Image codeImg = barcode128.createAwtImage(Color.black, Color.white); 34. 35.g.drawImage(codeImg, startX, imageStartY, barCodeWidth, barCodeHeight, Color.white, null); 36. 37.//为图片添加条形码(文字),位置为条形码图片的下部居中 38.AttributedString ats = new AttributedString(strInfo); 39.ats.addAttribute(TextAttribute.FONT, font, 0, strInfo.length()); 40.AttributedCharacterIterator iter = ats.getIterator(); 41. 42.// 设置条形码(文字)的颜色 43. g.setColor(Color.BLACK); 44.// 绘制条形码(文字) 45.g.drawString(iter, startX + (barCodeWidth - codeWidth) / 2, stringStartY); 46.g.dispose(); 47. 48.ImageIO.write(img, "PNG",new File("D:\\33333.png"));
二维码相关代码:
1.String strInfo="9009090909"; 2. 3.BarcodePDF417 barcodePDF417 = new BarcodePDF417(); 4. 5.barcodePDF417.setText(strInfo.getBytes("GBK")); 6. 7.//计算公式为:(17 * codeColumns +3)+18 8.//得到的这个值,正是二维码图片的宽度 9.barcodePDF417.setCodeColumns(7); 10.//二维码的内容也就是setText的值,内容越多,高度也会变高 11.//是一个动态的高 12.barcodePDF417.setYHeight(2); 13.barcodePDF417.setOptions(BarcodePDF417.PDF417_FIXED_COLUMNS | BarcodePDF417.PDF417_USE_ERROR_LEVEL); 14. 15.java.awt.Image pdfImg = barcodePDF417.createAwtImage(Color.black, Color.white); 16. 17.BufferedImage img = new BufferedImage( pdfImg.getWidth(null),pdfImg.getHeight(null), BufferedImage.TYPE_INT_RGB); 18. 19.Graphics g = img.createGraphics(); 20.g.drawImage(pdfImg, 0, 0, Color.WHITE, null); 21.g.dispose(); 22. 23.ImageIO.write(img, "PNG",new File("D:\\33333.png"));
0 0
- itext的学习使用
- iText 学习使用
- 关于IText的使用
- [iTextSharp学习笔记]使用iText的基本构造块
- [iTextSharp学习笔记]使用iText的基本构造块
- [iTextSharp学习笔记]使用iText的基本构造块
- itext学习笔记——开始使用itext
- Itext的简单应用和学习
- Itext 学习 Paragraph (段)的用法
- 使用iText输出PDF报表的实践
- 一个使用itext导出pdf的例子
- 一个使用itext导出pdf的例子
- iText页脚的使用(一)
- 使用itext生成pdf的,各种布局
- Java操作PDF报表-iText的使用
- 使用itext生成pdf的,各种布局
- iText使用入门,打开加密的pdf文件(itext Bad user Password的解决方法)
- ITEXT实例学习与研究(一) 之 HELLOWORLD的实现,解决中文问题,ITEXT框架
- GetLastInputInfo函数
- 筋斗云接口编程 / 函数型接口
- 空闲任务(Idle Task)和统计任务
- 建立外部表
- ubuntu16.04安装ibus中文输入法
- itext的学习使用
- 笔记2:caffe制作行人检测数据集
- 运算符重载 重载的两种方法 +
- SQL有时间段查询,索引的建立(非聚集索引 )
- MyEclipse2017CI注册激活
- 获取函数信息
- 筋斗云接口编程 / 常用操作(一)
- java swing selected 列表
- 筋斗云接口编程 / 常用操作(二)