`
geshenyi
  • 浏览: 100957 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

itext 输出 中文

阅读更多
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();
	}
}
分享到:
评论

相关推荐

    itext7中文输出打包

    这个"itext7中文输出打包"项目,从标题和描述来看,主要是关于如何在iText7中处理中文字符并将其输出到PDF文档中的实践教程。这个IDEA工程提供了一个完整的示例,演示了如何在Java环境中使用iText7来解决中文字符...

    iText5.5中文包

    iText是一款著名的开源Java库,专门用于创建和编辑PDF文档。在标题中提到的"iText5.5中文包"是指iText库的5.5.2版本,...无论是企业内部报告、电子书籍还是其他需要高质量PDF输出的场景,iText都是一个值得信赖的选择。

    iText和支持中文的jar包

    总之,iText是一款强大的PDF处理工具,虽然在默认情况下对中文支持有限,但通过引入支持中文的jar包和正确配置,我们可以充分利用iText的功能,生成包含中文的高质量PDF报表。在进行这项工作时,了解和掌握字体管理...

    itext中文操作手册

    ### itext中文操作手册知识点详解 #### 一、iText简介与中文支持 iText是一款强大的Java库,用于创建和操作PDF文档。它不仅能够帮助开发者生成复杂的PDF文件,还能处理PDF的加密、签名以及表单填充等功能。然而,...

    iText5.1.0(解决不支持中文问题)

    它包含了必要的字体和编码支持,使得iText能够正确地渲染和输出中文文本。在使用这个库时,开发人员不再需要担心由于缺少合适的中文字体而导致的乱码问题。iTextAsian不仅解决了中文显示的问题,也同时支持其他亚洲...

    itext itextasian 中文

    itext中文: public static void main(String[] args) { ... document.add(new Paragraph("看看有没有输出中文?", getFont())); document.close(); } catch (Exception e) { e.printStackTrace(); } }

    itext中文帮助文档

    这是因为 iText 默认不支持中文字符集。这个问题将在第 9 章中解决,主要涉及字体的配置和使用。 在创建 `Document` 时,可以自定义页面尺寸。`Rectangle` 类允许你定义页面的宽度和高度,以及背景颜色。例如,创建...

    itext支持中文jar包

    它包含了必要的字体和编码集,使得Itext可以正确地渲染和输出中文字符。在使用`iTextAsian.jar`时,需要将其与`itext-2.0.8.jar`一起导入到项目中,这样才能确保中文字符在生成的PDF中能正常显示。 接下来,我们来...

    iText教程中文版

    在例子中,如果直接使用中文,PDF文件可能不会显示正确的汉字。这是因为iText默认不包含支持中文的字体。这个问题将在第9章中详细讨论,那里会介绍如何处理字体问题,确保中文能正确显示。 在创建自定义页面时,...

    Android用itext库生成中文PDF文档

    然而,由于版权和字符集的问题,原版的iText库在默认情况下可能无法正确地显示中文字符。这篇内容将深入探讨如何在Android环境中使用iText库生成包含中文的PDF文档。 首先,我们需要了解为什么原版iText库无法直接...

    itext导出pdf不显示中文 ITextRenderer不显示中文

    因此,当尝试输出中文时,如果没有正确的字体资源,就会出现乱码或不显示的情况。 解决这个问题的关键在于引入支持中文的字体。你可以采取以下步骤: 1. **导入字体资源**:首先,你需要一个支持中文的TrueType ...

    Itext5.5.13

    Itext5.5.13 完整的全套包,包含bcpkix-jdk15on-1.47.jar bcprov-jdk15on-1.59.jar itext-asian-5.2.0.jar itext-hyph-xml-5.1.1.jar itext-pdfa-5.5.13-javadoc.jar itext-pdfa-5.5.13-sources.jar itext-pdfa-...

    IText入门开发文档

    这些依赖涵盖了iText的基本组件,包括PDF核心操作、输入输出处理、布局管理、表单处理、PDF/A合规性支持、签名功能、条形码生成以及对亚洲字体的支持。 1. **创建一个空白PDF文档** 要创建一个新的PDF文档,首先...

    iText中文教程 附带例子

    这个中文教程是为开发者提供一个深入了解和使用iText的平台,特别适合那些希望在项目中处理PDF文档的程序员。iText不仅支持创建新的PDF文档,还允许对现有文档进行编辑、添加文本、图像、表格等元素,以及进行数字...

    iText中文教程及实例

    iText是一个能够快速产生PDF文件的java类库。iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的。它的类库尤其与java Servlet有很好的给合。使用iText与PDF能够使你正确的控制Servlet的输出。

    itext设置段落行间距.zip

    在这个“itext设置段落行间距.zip”压缩包中,包含了解决PDF生成过程中的一些关键问题,特别是针对中文支持和段落行距设置的方法。下面我们将详细探讨这些知识点。 首先,我们来看如何解决PDF导出中的中文问题。在...

    itext-rtf-2.1.7.jar,iTextAsian.jar,iText-5.0.6.jar,itext-2.1.7.jar

    8. **流式处理**:iText支持流式处理,可以在内存中或直接写入输出流生成PDF,适用于处理大型文档或网络传输。 在实际开发中,这些JAR文件可以作为项目依赖,通过集成到构建工具(如Maven或Gradle)中,方便地在...

    iText中文教程.pdf

    ### iText中文教程知识点概述 #### 一、iText简介 iText是一款强大的开源Java库,用于生成、操作和处理PDF文档。它支持多种编程语言,包括Java和.NET(通过iTextSharp)。iText最初由Bruno Lowagie在1999年创建,...

    iText中文帮助文档.doc

    这个中文帮助文档主要介绍了如何使用 iText 来创建 PDF 文件,特别强调了处理中文字符的问题。以下是对文档内容的详细解析: 首先,创建一个 PDF 文件是通过 iText 的五个基本步骤完成的,这些步骤在“HelloWord”...

    itext 包,itext.jar,itext 下载,汉化

    此外,对于中文支持,iText 提供了多语言资源包,包括中文,以适应不同的国际市场需求。 汉化iText主要是指将iText的用户界面或者错误消息等非代码内容翻译成中文,以方便中国开发者理解和使用。这通常涉及到修改或...

Global site tag (gtag.js) - Google Analytics