`
hz_chenwenbiao
  • 浏览: 1010199 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

itext创建PDF

阅读更多

到官方网站去下载itext:

http://itextpdf.com/

 

简单使用示例如下:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;

import com.itextpdf.text.Document;
import com.itextpdf.text.Font;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfWriter;

public class TextToPDF{
  public static void main(String arg[]){
    try{
      InputStreamReader in= new InputStreamReader(new FileInputStream(new File("D:\\test\\File\\开启任务.txt")));
      BufferedReader bin= new BufferedReader(in);
      System.out.println("Enter text:");
      
        Document document = new Document(PageSize.A4, 36, 72, 108, 180);
        
        //指定字符格式
        BaseFont bfChinese = BaseFont.createFont("C:/WINDOWS/Fonts/SIMYOU.TTF", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);   
        Font FontChinese = new Font(bfChinese, 12, Font.NORMAL);
        
		
        PdfWriter.getInstance(document,new FileOutputStream(new File("D:\\test\\File\\开启任务.pdf")));
        document.open();
        String text=null;
        while((text=bin.readLine()) != null){
            document.add(new Paragraph(text,FontChinese));
        }
        System.out.println("Text is inserted into pdf file");
        document.close();
    }catch(Exception e){}
  }
}

 

 

它对中文好像支持不够,会将识别不了的中文直接过滤掉,对于编码方式可以有如下选择(转自itext输出中文的三种选择

 

 

http://blog.csdn.net/hangke/archive/2007/10/23/1839687.aspx):

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);   

第一种方式

ByteArrayOutputStream baos = new ByteArrayOutputStream(OUTPUT_BYTE_ARRAY_INITIAL_SIZE);
    Document document = new Document(PageSize.A4);
    PdfWriter writer = PdfWriter.getInstance(document, baos);
    writer.setViewerPreferences(PdfWriter.AllowPrinting  | PdfWriter.PageLayoutSinglePage);
    BaseFont bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);
    Font font = new Font(bf, 12, Font.NORMAL);
    document.open();
    Paragraph p = new Paragraph("你好", font); 
    document.add(p);
    document.add(new Paragraph("Test2"));
    Table table = new Table(2, 3);
    table.addCell(new Phrase("我好", font));
    table.addCell("C2R1");
    table.addCell("C1R2");
    table.addCell("C2R2");
    Cell c = (Cell) table.getElement(0, 0);
    c.setVerticalAlignment("Middle");
    c.setBackgroundColor(new Color(255, 0, 0));
    c.setHorizontalAlignment("Center");
    document.add(table);
    document.close();
    baos.writeTo(new FileOutputStream("F:\\test.pdf"));     

 

这种方式可能遇到的问题是adober的版本不同造成中文不能显示,可以用超星等其他浏览器查看效果

第二种方式 

 

public static void main(String[] args) {
  // TODO Auto-generated method stub
        // step 1: creation of a document-object
        Document document = new Document();        
        try {
            // step 2:
            // we create a writer that listens to the document
            // and directs a PDF-stream to a file
            PdfWriter.getInstance(document, new FileOutputStream("D:\\ChinesePDF005_"+new java.util.Date().getTime()+".pdf"));
            
            // step 3: we open the document
            document.open();
            
            // step 4: we add content to the document
            //楷体字
            //BaseFont bfComic = BaseFont.createFont("c:\\windows\\fonts\\simkai.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
            //方正舒体
            //BaseFont bfComic = BaseFont.createFont("c:\\windows\\fonts\\FZSTK.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
            //方正姚体
            //BaseFont bfComic = BaseFont.createFont("c:\\windows\\fonts\\FZYTK.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
            //仿宋体
            //BaseFont bfComic = BaseFont.createFont("c:\\windows\\fonts\\SIMFANG.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
            //黑体
            //BaseFont bfComic = BaseFont.createFont("c:\\windows\\fonts\\SIMHEI.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
            //华文彩云
            //BaseFont bfComic = BaseFont.createFont("c:\\windows\\fonts\\STCAIYUN.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
            //华文仿宋
            //BaseFont bfComic = BaseFont.createFont("c:\\windows\\fonts\\STFANGSO.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
            //华文细黑
            //BaseFont bfComic = BaseFont.createFont("c:\\windows\\fonts\\STXIHEI.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
            //华文新魏
            //BaseFont bfComic = BaseFont.createFont("c:\\windows\\fonts\\STXINWEI.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
            //华文行楷
            //BaseFont bfComic = BaseFont.createFont("c:\\windows\\fonts\\STXINGKA.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
            //华文中宋
            //BaseFont bfComic = BaseFont.createFont("c:\\windows\\fonts\\STZHONGS.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
            //隶书
            //BaseFont bfComic = BaseFont.createFont("c:\\windows\\fonts\\SIMLI.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
            //宋体&新宋体    (这种字体的输出不了.有问题)
            //BaseFont bfComic = BaseFont.createFont("c:\\windows\\fonts\\SIMSUN.TTC", BaseFont.NOT_EMBEDDED, BaseFont.NOT_EMBEDDED);
            //宋体-方正超大字符集
            //BaseFont bfComic = BaseFont.createFont("c:\\windows\\fonts\\SURSONG.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
            //幼圆
            BaseFont bfComic = BaseFont.createFont("c:\\windows\\fonts\\SIMYOU.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

            Font font = new Font(bfComic, 14);
            String text1 = " 幼圆幼圆幼圆  This is the quite popular True Type font (繁體字測試VS简体字测试) ==>"+new java.util.Date();
            document.add(new Paragraph(text1, font));
        }
        catch(DocumentException de) {
            System.err.println(de.getMessage());
        }
        catch(IOException ioe) {
            System.err.println(ioe.getMessage());
        }        
        // step 5: we close the document
        document.close();
        System.out.println(">>> Export : "+"D:\\ChinesePDF005__.pdf");
 }
}

 

 

分享到:
评论
1 楼 happenZheng 2011-03-28  
你好,如果我有一个段落,我想把它放在当前页的最尾,而不是页脚。
而当前页中间又有空的内容,请问下,该如何实现呢??

相关推荐

    iText创建pdf中文文档.doc.zip

    iText是一款广泛使用的Java库,专门...通过阅读“iText创建pdf中文文档.doc”提供的详细资源,你可以深入了解如何利用iText的特性和方法来创建自定义的PDF文档。学习和掌握iText,将使你在处理PDF文档时更加得心应手。

    iText 创建 PDF

    **iText创建PDF详解** 在IT领域,生成PDF文档是一项常见的任务,特别是在报表、发票、证书等场景下。iText是一款强大的开源Java库,专为创建、修改和处理PDF文档而设计。它允许开发者通过简单的API接口来实现复杂的...

    iText_pdf.rar_iText pdf_itext PDF类

    在实际开发中,使用iText创建PDF时,首先需要导入iText库,然后创建`Document`对象来表示PDF文档,接着使用`PdfWriter`将`Document`对象与输出流关联。通过`Paragraph`、`Font`、`Chunk`等类添加内容,可以控制文本...

    itext 生成pdf 目录

    iText 是一个强大的Java库,专门用于创建和修改PDF文档。在PDF文档中,目录(或书签)是用户友好的导航工具,可以帮助读者快速跳转到特定章节或页面。本篇文章将深入探讨如何使用iText来生成PDF的目录。 首先,理解...

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

    iText是一个强大的开源库,它允许开发者在Java和.NET环境中创建、编辑和处理PDF文档。在这个场景中,我们将探讨如何利用iText在Android应用中生成PDF以及读取PDF的内容。 首先,我们需要在Android项目中引入iText库...

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

    iText创建PDF时,需要依赖字体来正确地呈现文本。默认情况下,iText只包含有限的几种基本字体,这些字体可能不包含中文字符集。因此,当尝试输出中文时,如果没有正确的字体资源,就会出现乱码或不显示的情况。 ...

    itext7 pdf转图片

    在IT行业中,iText是一个广泛使用的Java和.NET库,用于创建、编辑和处理PDF文档。在最新的版本iText 7中,它提供了丰富的功能,包括将PDF文档转换为图像。这个话题涉及到PDF处理和图像转换两个核心领域。下面将详细...

    使用IText生成PDF和WORD文档

    以下是一个简单的示例,演示如何使用IText创建一个包含文本的PDF文档: ```java import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Paragraph; import ...

    itext生成PDF开发文档

    在 Java 开发中,iText 提供了丰富的 API,使得开发者可以方便地在代码中创建 PDF 文件、添加文本、图像、表格、链接等元素,甚至进行数字签名和表单处理。在本项目中,我们看到使用了 iText 7.0.2 版本,这是 iText...

    Itext删除PDF的图层

    Itext是一个开源Java库,专为处理PDF文档设计,提供了一系列API用于创建、编辑和阅读PDF文件。 **Itext库介绍** Itext是PDF处理的强力工具,它允许开发者进行各种操作,包括添加文本、图像、表格,以及处理PDF的...

    iText操作Pdf简单整理

    1. **创建PDF文档**:使用`Document`类作为PDF文档的容器,通过`Document.open()`方法开启文档,然后使用`Paragraph`、`Chunk`等对象添加文本内容,最后调用`Document.close()`关闭文档。 2. **字体管理**:iText...

    JAVA基于ITEXT实现的PDF报表系统

    要使用ITEXT创建PDF报表,首先需要引入相应的依赖。如果你使用的是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <groupId>com.itextpdf</groupId> <artifactId>itextpdf <version>5.x.x ``` 这里的...

    使用itext生成pdf需要的jar包

    iText允许开发者通过编程方式创建PDF文档,支持添加文本、图像、表格、链接、样式和布局等多种元素。它还提供了高级功能,如数字签名、表单填写和模板处理,使PDF生成变得灵活且高效。 要开始使用iText,首要任务是...

    Itext生成PDF所需要的最全Jar包

    在实际使用中,你需要将这些Jar包添加到你的项目类路径中,然后就可以通过Itext提供的丰富API来创建PDF了。例如,你可以创建一个新的PDF文档,添加标题、段落,插入图片,设置字体和颜色,甚至添加交互式表单。Itext...

    itext对pdf进行编辑

    itext对pdf进行编辑.使用Adobe对pdf创建表单,itext对表单填充,下拉选,单选,文本框.复选框.itext对pdf进行编辑.使用Adobe对pdf创建表单,itext对表单填充,下拉选,单选,文本框.复选框

    itextpdf-5.5.13

    《iTextPDF 5.5.13:创建PDF文件的高效工具》 iTextPDF是一款功能强大的Java库,主要用于创建、编辑以及处理PDF文档。版本5.5.13是其历史版本之一,提供了丰富的API和功能,使得开发者能够方便地在Android平台上...

    使用iText生成PDF.doc

    `Table`类用于创建PDF中的表格。示例中创建了一个2行4列的表格,并添加了单元格。`addCell()`方法用于添加单元格,可以通过参数调整单元格的样式和位置。 6. **插入图像**: 示例中使用`Jpeg`类添加了一张图片。...

    使用ITEXT导出PDF、WORD,APACHE POI导出EXCEL报表文件

    以下是一个简单的示例,展示如何使用ITEXT创建PDF文件: ```java import com.itextpdf.text.Document; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfWriter; import java.io....

    itextpdf 导出pdf 表格 自动分页中文 目录

    - 创建PDF文档:使用`Document`类初始化一个新的PDF文档对象,并设定页面大小、边距等属性。 - 添加表格:使用`PdfPTable`类创建表格,指定列数和宽度,然后添加单元格数据,可以使用` PdfPCell`类表示每个单元格...

    使用POI和IText将Excel转换成PDF

    有了这些数据,我们可以使用iText创建PDF文档并写入内容: ```java import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Paragraph; import ...

Global site tag (gtag.js) - Google Analytics