iText中输出中文
来源:互联网 发布:苹果电影下载软件 编辑:程序博客网 时间:2024/05/16 13:54
原文链接
http://hintcnuie.iteye.com/blog/183690
转载内容
iText中输出中文,有三种方式:
1、使用iTextAsian.jar中的字体
BaseFont.createFont(“STSong-Light”, “UniGB-UCS2-H”,BaseFont.NOT_EMBEDDED);
2、使用Windows系统字体(TrueType)
BaseFont.createFont(“C:/WINDOWS/Fonts/SIMYOU.TTF”, BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
3、使用资源字体(ClassPath)
BaseFont.createFont(“/SIMYOU.TTF”, BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
第2、三种方式使用的字体多一些,但是需要和实际资源绑定,在实际项目中可以将一些字体库和项目打包在一起,下面我们以iTextAsian中自带的字体为例说明如何输出中文:
BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); Font FontChinese = new Font(bfChinese, 12, Font.NORMAL); document.add(new Paragraph(" 产生的报告",FontChinese));
一个完整的例子:
/* * $Id: RepeatingTable.java,v 1.5 2005/05/09 11:52:47 blowagie Exp $ * $Name: $ * * This code is part of the 'iText Tutorial'. * You can find the complete tutorial at the following address: * http://itextdocs.lowagie.com/tutorial/ * * This code is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * * itext-questions@lists.sourceforge.net */package com.lowagie.examples.objects.tables.alternatives;import java.awt.Color;import java.io.File;import java.io.FileOutputStream;import java.util.Date;import com.lowagie.text.Cell;import com.lowagie.text.Document;import com.lowagie.text.Element;import com.lowagie.text.Font;import com.lowagie.text.FontFactory;import com.lowagie.text.PageSize;import com.lowagie.text.Paragraph;import com.lowagie.text.Phrase;import com.lowagie.text.Rectangle;import com.lowagie.text.Table;import com.lowagie.text.pdf.BaseFont;import com.lowagie.text.pdf.PdfWriter;/** * Shows how a table is split if it doesn't fit the page. */public class RepeatingTable { /** * Shows how a table is split if it doesn't fit the page. * * @param args * no arguments needed */ public static void main(String[] args) { System.out.println("table splitting"); // creation of the document with a certain size and certain margins Document document = new Document(PageSize.A4.rotate(), 50, 50, 50, 50); try { // creation of the different writers String filePath = "d:" + File.separator + "temp" + File.separator + "iText_Generated_pdf" + File.separator + "table" + File.separator; File file = new File(filePath); if (!file.exists()) { file.mkdirs(); } PdfWriter.getInstance(document, new FileOutputStream(filePath + "repeatingtable.pdf")); // we add some meta information to the document document.addAuthor("chenzwei@cn.ibm.com,CTE WAC,GBSC,CDL,IBM"); document.addSubject("This is a sample of iText in CTE."); document.open(); Table datatable = new Table(10); int headerwidths[] = { 10, 24, 12, 12, 7, 7, 7, 7, 7, 7 }; datatable.setWidths(headerwidths); datatable.setWidth(100); datatable.setPadding(3); // the first cell spans 10 columns Cell cell = new Cell(new Phrase( "Administration -System Users Report", FontFactory.getFont( FontFactory.HELVETICA, 24, Font.BOLD))); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setLeading(30); cell.setColspan(10); cell.setBorder(Rectangle.NO_BORDER); cell.setBackgroundColor(new Color(0xC0, 0xC0, 0xC0)); datatable.addCell(cell); // These cells span 2 rows datatable.setBorderWidth(2); datatable.setAlignment(1); datatable.addCell("User Id"); datatable.addCell("Name\nAddress"); datatable.addCell("Company"); datatable.addCell("Department"); datatable.addCell("Admin"); datatable.addCell("Data"); datatable.addCell("Expl"); datatable.addCell("Prod"); datatable.addCell("Proj"); datatable.addCell("Online"); // this is the end of the table header datatable.endHeaders(); datatable.setBorderWidth(1); for (int i = 1; i < 30; i++) { datatable.setAlignment(Element.ALIGN_LEFT); datatable.addCell("myUserId"); datatable .addCell("Somebody with a very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very, very long long name"); datatable.addCell("No Name Company"); datatable.addCell("D" + i); datatable.setAlignment(Element.ALIGN_CENTER); datatable.addCell("No"); datatable.addCell("Yes"); datatable.addCell("No"); datatable.addCell("Yes"); datatable.addCell("No"); datatable.addCell("Yes"); } BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); Font FontChinese = new Font(bfChinese, 12, Font.NORMAL); document.add(new Paragraph(" 产生的报告",FontChinese)); document.add(datatable); document.newPage(); document.add(new Paragraph( "com.lowagie.text.pdf.PdfPTable - Cells split\n\n")); datatable.setConvert2pdfptable(true); document.add(datatable); document.newPage(); document.add(new Paragraph( "com.lowagie.text.Table - Cells kept together")); datatable.setConvert2pdfptable(false); datatable.setCellsFitPage(true); document.add(datatable); document.newPage(); document .add(new Paragraph( "com.lowagie.text.pdf.PdfPTable - Cells kept together\n\n")); datatable.setConvert2pdfptable(true); document.add(datatable); } catch (Exception e) { e.printStackTrace(); } // we close the document document.close(); }}
附录:
http://www.lowagie.com/iText/tutorial/index.html (iText教程) http://www.lowagie.com/iText/download.html (iText核心包文件)
http://sourceforge.net/project/showfiles.php?group_id=15255&release_id=167948 (iTextArea 包文件)
- iText中输出 中文
- iText中输出中文
- iText中输出中文的方式
- iText输出中文问题解决
- 解决iText 5.x输出中文问题
- Itext中文
- iText输出中文的三种字体选择方式
- 用itext定制图片背景并输出中文
- iText输出中文的三种字体选择方式
- 转载:iText输出中文的三种字体选择方式
- iText输出中文的三种字体选择方式
- iText中文教程 第二章 在Web应用程序中使用iText(上)
- iText输出表格
- IText中文处理问题!!!
- itext中文问题
- iText的中文处理
- iText中文问题
- iText中文处理
- C# - String.Empty vs ""
- JS中判断null、undefined与NaN的方法
- 安卓WIFI原理浅析
- 程序化交易系统总结
- 漫谈高数 特征向量物理意义
- iText中输出中文
- Ride to School
- EasyUi---searchbox 条件查询
- 哈弗曼译码函数
- 浅谈软件项目开发过程中的主要项目风险及对策
- Vim_替换命令解释
- 《数据挖掘-概念与技术》之数据预处理
- Building a Dynamic UI with Fragments
- SpringMVC表单标签简介