`

java使用iText生成pdf。解决中文。

阅读更多
/**
 * AsianTest.java
 */

import java.io.FileOutputStream;
import java.io.IOException;

import com.lowagie.text.*;
import com.lowagie.text.pdf.PdfWriter;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.Font;
import java.awt.Color;

public class AsianTest {

	public static void main(String[] args) {

		// 创建一个Document对象
		Document document = new Document();

		try {

			// 生成名为 AsianTest.pdf 的文档
			PdfWriter.getInstance(document, new FileOutputStream(
					"c://AsianTest.pdf"));

			/**
			 * 新建一个字体,iText的方法 STSongStd-Light 是字体,在iTextAsian.jar 中以property为后缀
			 * UniGB-UCS2-H 是编码,在iTextAsian.jar 中以cmap为后缀 H 代表文字版式是 横版, 相应的 V
			 * 代表竖版
			 */
			BaseFont bfChinese = BaseFont.createFont("STSongStd-Light",
					"UniGB-UCS2-H", false);

			Font bold_fontChinese = new Font(bfChinese, 12, Font.BOLD,
					Color.BLACK);
			Font italic_fontChinese = new Font(bfChinese, 12, Font.ITALIC,
					Color.BLACK);
			Font impressFont = new Font(bfChinese, 16, Font.BOLDITALIC,
					Color.BLACK);
			// 打开文档,将要写入内容
			document.open();

			// 插入一个段落
			// Paragraph par = new Paragraph("我们", fontChinese);

			// document.add(par);
			//
			document.add(new Paragraph(" ", bold_fontChinese));
			document.add(new Paragraph(" ", bold_fontChinese));
			document.add(new Paragraph(" ", bold_fontChinese));
			String[] Trainspotting1 = { "选择生命,选择工作,选择职业,选择家庭,",
					"选择可恶的大彩电,选择洗衣机、汽车、雷射碟机,", "选择健康、低胆固醇和牙医保险,选择楼宇按揭,",
					"选择你的朋友,选择套装、便服和行李,选择分期付款和三件套西装,",
					"选择收看无聊的游戏节目,边看边吃零食……选择你的未来,选择生命……", "太多选择,你选择什么,我选择不选择。" };
			String[] Trainspotting2 = { "这是电影《猜火车》开头的旁白。", "这是一个关于“选择”的故事。" };
			String[] Benjamin1 = { "有些人就在河边出生长大,", "有些人被闪电击中,",
					"有些人对音乐有着非凡的天赋,", "有些人是艺术家,", "有人会游泳,", "有人懂得做纽扣,",
					"有人会背莎士比亚,", "而有些人。。。是母亲,", "也有些人,可以翩翩起舞。",
					"Goodnight  Daisy", "Goodnight  Benjamin" };
			String[] Benjamin2 = { "这是电影《本杰明传奇》结尾的旁白。", "这是一个关于“错过”的故事。" };
			String[] text1 = { "我想说的是,", "我们选择,同时,我们错过。" };
			String[] text2 = { "抛去无可选择的选择,抑或不选择的选择,",
					"很有趣的一件事:当面临(太多的)选择,人们会如何选择;", "同时,人们又会如何看待错过。" };
			String[] text3 = { "在开始和结束之间,选择了什么,又会错过什么,我还不知道。" };
			String[] text4 = { "你会知道么?" };
			//
			for (String s : Trainspotting1) {
				document.add(new Paragraph(s, italic_fontChinese));
				document.add(new Paragraph(" ", italic_fontChinese));
			}
			for (String s : Trainspotting2) {
				document.add(new Paragraph(s, bold_fontChinese));
			}
			document.add(new Paragraph(" ", bold_fontChinese));
			document.add(new Paragraph(" ", bold_fontChinese));
			document.add(new Paragraph(" ", bold_fontChinese));
			for (String s : Benjamin1) {
				document.add(new Paragraph(s, italic_fontChinese));
				document.add(new Paragraph(" ", italic_fontChinese));
			}
			for (String s : Benjamin2) {
				document.add(new Paragraph(s, bold_fontChinese));
			}
			document.add(new Paragraph(" ", bold_fontChinese));
			document.add(new Paragraph(" ", bold_fontChinese));
			document.add(new Paragraph(" ", bold_fontChinese));
			for (String s : text1) {
				document.add(new Paragraph(s, bold_fontChinese));
			}
			document.add(new Paragraph(" ", bold_fontChinese));
			for (String s : text2) {
				document.add(new Paragraph(s, bold_fontChinese));
			}
			document.add(new Paragraph(" ", bold_fontChinese));
			for (String s : text3) {
				document.add(new Paragraph(s, bold_fontChinese));
			}
			document.add(new Paragraph(" ", bold_fontChinese));
			for (String s : text4) {
				document.add(new Paragraph(s, bold_fontChinese));
			}
			document.add(new Paragraph(" ", bold_fontChinese));
			//
			String[] end = { "Some people were born to sit by a river...",
					"Some get struck by light...",
					"Some have an ear for music...", "Some are artists...",
					"Some swim...", "Some know buttons...",
					"Some know Shakespeare...", "Some are mothers...",
					"And some people can dance..." };
			for (String s : end) {
				document.add(new Paragraph(s, bold_fontChinese));
			}
			document.add(new Paragraph(
					"by the way, some people can write code.你", impressFont));

			// Chapter
			Paragraph title1 = new Paragraph("Chapter 1", italic_fontChinese);
			Chapter chapter1 = new Chapter(title1, 1);
			chapter1.setNumberDepth(0);
			Paragraph title11 = new Paragraph(
					"This is Section 1 in Chapter 1中文", italic_fontChinese);
			Section section1 = chapter1.addSection(title11);
			Paragraph someSectionText = new Paragraph(
					"This text comes as part of section 1 of chapter 1.");
			section1.add(someSectionText);
			someSectionText = new Paragraph("Following is a 3 X 2 table.");
			section1.add(someSectionText);
			//
			document.add(chapter1);
			//
			// 定义一个图片

			Image jpeg = Image.getInstance("E:/01.jpg");

			// 图片居中
			jpeg.setAlignment(Image.ALIGN_CENTER);
			document.add(jpeg);
		} catch (DocumentException de) {
			System.err.println(de.getMessage());
		} catch (IOException ioe) {
			System.err.println(ioe.getMessage());
		}

		// 关闭打开的文档
		document.close();
	}
}

 

分享到:
评论

相关推荐

    解决Itext生成PDF中文不换行的jar

    为了解决"Java使用Itext生成PDF中文不换行"的问题,我们可以采取以下几种策略: 1. **设置字体和编码**:确保使用支持中文的字体,如SimSun、Arial Unicode MS等,并正确设置PDF的编码为UTF-8。Itext中的`Font`类...

    使用iText生成PDF.doc

    以下是一些关于如何使用iText生成PDF的关键知识点: 1. **安装与获取iText**: 要使用iText,首先需要从其官方源代码托管平台SourceForge下载相应的.jar文件。基础的iText.jar提供了基本的PDF生成功能,但如果你...

    java使用itext导出PDF文本绝对定位(实现方法)

    java使用iText导出PDF文本绝对定位(实现方法) iText是一个流行的Java类库,用于生成PDF文档。下面我们将探讨如何使用iText在Java中导出PDF...我们希望本篇文章能够给您一个参考,帮助您更好地使用iText生成PDF文档。

    itext 生成pdf 目录

    在使用iText生成PDF目录时,要注意几点: - 确保每个书签都有一个对应的目标位置,否则在PDF中点击书签可能无法正确跳转。 - 避免内存泄漏,尤其是在处理大量书签时,要及时释放资源。 - 书签层次不宜过深,以免影响...

    使用IText生成PDF和WORD文档

    document.add(new Paragraph("这是使用IText生成的PDF文档!")); document.close(); } catch (DocumentException | IOException e) { e.printStackTrace(); } } } ``` 这段代码首先创建了一个`Document`对象...

    java使用itext实现pdf文件下载

    这是使用Itext生成的PDF文档。")); document.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 上述代码会在当前目录下生成一个名为"output.pdf"的PDF文件,内容为"Hello, World! 这是使用...

    Java解决Itext pdf中文不显示问题

    在Java开发中,Itext是一个常用的库,...通过以上步骤,你应该能成功地在Java中使用Itext生成包含中文内容的PDF文档。如果遇到其他问题,可以查阅Itext的官方文档或者相关的技术社区,如iteye,寻求更多的帮助和支持。

    Java 使用iText7生成带页码的PDF文件(同时生成目录,但是不会合并两个PDF)

    在IT行业中,生成PDF文件是常见的需求,尤其是在报告、文档或证书的生成上。Java作为一个强大的后端开发语言,提供了多种库来实现这一功能。本文将深入探讨如何使用iText7这个库在Java环境中生成带有页码和目录的PDF...

    Android使用iText生成pdf并读取pdf内容

    在这个场景中,我们将探讨如何利用iText在Android应用中生成PDF以及读取PDF的内容。 首先,我们需要在Android项目中引入iText库。由于Android Studio默认使用Gradle作为构建工具,我们可以在`build.gradle`文件的...

    Java生成pdf文件,解决中文乱码问题.pdf

    本文将通过一个完整的示例代码,详细讲解如何使用 iText 库生成 PDF 文件,解决中文乱码问题。 1. 使用 iText 库 iText 库是一个流行的 Java 库,用于生成 PDF 文件。它提供了丰富的功能,包括文档结构、字体、...

    java使用itext生成pdf的代码示例

    在Java开发中,生成PDF文档是一项常见的需求,特别是在报表、合同和电子书籍等场景下。iText是一个强大的库,专门用于生成和操作PDF文件。在这个示例中,我们将探讨如何利用iText库将HTML代码转化为PDF文档,同时...

    java 基于iText的PDF输出(源码)

    添加模板 添加文本内容 设置文本字体 设置文本字体大小 设置字体颜色 设置表单域颜色 组件方法调用: ...addText(String templKey,String key,String text), 向模板中一个表单域添加一个文本数据;...

    使用Java组件itext生成pdf介绍.docx

    ### 使用Java组件itext生成PDF知识点详解 #### 一、前言 在现代企业信息化建设过程中,报表处理占据了举足轻重的地位。特别是在B/S架构系统中,如何高效地生成和展示报表成为了一个亟待解决的问题。Java组件iText...

    java使用IText导出PDF(包含图片、表格、文字等等Demo和依赖包)

    Java使用IText库导出PDF是一项常见的任务,特别是在需要生成报告、文档或发票等静态内容时。IText是一个强大的PDF库,它允许开发者在Java环境中创建、修改和处理PDF文档。下面将详细介绍如何使用IText库来实现这个...

    itext生成pdf目录

    用itext方法生成 与Word一样的目录

    java通过itext操作pdf模板写入pdf合同数据

    在这个过程中,首先我们需要一个PDF模板,通常由Adobe Acrobat等专业工具生成,然后使用iText库在Java代码中读取模板并写入动态数据。 1. **iText库介绍** iText是开源的Java库,支持PDF 1.7标准,提供了一系列API...

    Java使用iText生成word文件的解决方案

    总结起来,使用iText生成Word文件是一项实用的技能,尤其在需要程序自动化生成报告或文档的场合。通过理解和熟练运用iText,你可以轻松地将数据转换为专业格式的文档,提高工作效率。对于那些需要处理大量文本和格式...

    java使用itext解析pdf并生成文本文件—eclipse工程

    在这个“java使用iText解析pdf并生成文本文件—eclipse工程”中,我们将探讨如何利用iText库在Java环境中,特别是在Eclipse集成开发环境中,解析PDF文档并将其内容导出为文本文件。 首先,我们需要理解PDF...

    java运用iText生成PDF所需的开源jar包

    java运用iText生成PDF所需的jar包: core-renderer.jar, itext-asian.jar, itextpdf-2.0.8.jar, itextpdf-asian-cmaps.jar 已打包中文字体可直接使用

    springboot使用itext生成pdf并保存到本地

    总结一下,要实现在Spring Boot应用中使用iText生成带有页眉、页码、水印、目录和二维码的PDF,你需要: 1. 引入iText及相关库。 2. 创建HTML页面并将其转换为PDF。 3. 定制PDF内容,包括添加页眉、页码和水印。 4. ...

Global site tag (gtag.js) - Google Analytics