使用 iText 操作pdf文件

Hello World
iText创建pdf文件是十分简单的,为了演示其极其简单性,我们做一个HelloWorld吧,让大家体验一下。
在这个pdf文件中,我们只显示一句话"Hello World",实现方式如下:
         //  创建一个文档对象
        Document doc =  new Document();
         try  {
            // 定义输出位置并把文档对象装入输出对象中
            PdfWriter.getInstance(doc, new FileOutputStream("/root/hello.pdf"));
            // 打开文档对象
            doc.open();
            // 加入文字“Hello World”
            doc.add(new Paragraph("HelloWorld"));
            // 关闭文档对象,释放资源
            doc.close();
        }
  catch (FileNotFoundException e)  {
            e.printStackTrace();
        }
  catch (DocumentException e)  {
            e.printStackTrace();
        }
怎么样?很简单吧?下面我们对以上代码稍作解释。
Document(文档)是创建pdf需要使用的第一个类,一旦创建了文档,要向pdf文件里写入内容,则需要一个写入器,而PdfWriter就是这样的一个写入器。Paragraph这个类表示一个缩进的段落。运行以上程序,我们就会在/root目录下看到hello.pdf文件。

但是在实际工作中,我们不可能做这么简单的工作,下面就介绍一下常用的操作。
二.设置页边距
如果我们希望定义页面大小和页边距,可以通过使用Document的构造方法实现:
     public Document();

     public Document(Rectangle pageSize);

     public Document(Rectangle pageSize,
        int marginLeft,
        int marginRight,
        int marginTop,
        int marginBottom);
如下:
    Rectangle pSize= new Rectangle(144,90);
         // 文档的背景色
        pSize.setBackgroundColor(Color.blue);             
         // 创建一个文档对象,设置初始化大小和页边距
        Document doc= new Document(pSize,5,5,5,5);
在上面的例子中我们通过Rectangle设置了文档的大小,其实iText已经为我们定义好了许多常用的页面,比如:A0-A10,我们可以直接调用,如下:
 Document doc= new Document(PageSize.A4,5,5,5,5);

三.设置字体
iText可以设置显示文本的字体,大小,颜色等,如下:
             //  加入文字“Hello World”,并设置字体为粗体,大小为20,颜色为红色
            doc.add( new Paragraph("HelloWorld", FontFactory.getFont(
                    FontFactory.COURIER, 20, Font.BOLD,  new Color(255, 0, 0))));
而要实现中文支持,我们需要到 http://itextdocs.lowagie.com/downloads/iTextAsian.jar下载中文支持包,然后把它放入classpath中(我试了几次,都无法下载,这里先不说这块了)。
四.编辑表格
pdf中的table和html中的table差不多,只是其单元格是cell,如下代码加入了一个2*2的表格,代码很简单,就不过多解释了。
        Document doc =  new Document();
         try  {
            // 定义输出位置并把文档对象装入输出对象中
            PdfWriter.getInstance(doc, new FileOutputStream("/root/hello.pdf"));
            // 打开文档对象
            doc.open();
            Table t = new Table(2,2);
            t.setBorderColor(new Color(0, 0, 255));//设置边框颜色为蓝色
            t.setPadding(5);
            t.setSpacing(5);//设置单元格边界
            t.setBorderWidth(1);//设置边框宽度
            Cell c1 = new Cell("header1");
            c1.setHeader(true);
            t.addCell(c1);
            c1 = new Cell("Header2");
            t.addCell(c1);
            t.endHeaders();
            t.addCell("1.1");
            t.addCell("1.2");
            doc.add(t);
            // 关闭文档对象,释放资源
            doc.close();
        }
  catch (FileNotFoundException e)  {
            e.printStackTrace();
        }
  catch (DocumentException e)  {
            e.printStackTrace();
        }

五.插入图片
插入图片和swing插入图片差不多,大家可以参考一下:
        Document doc =  new Document();
        Image jpeg;
         try  {
            PdfWriter.getInstance(doc, new FileOutputStream("/root/hello.pdf"));
            doc.open();
            jpeg = Image.getInstance("/root/1.gif");
            //图片居中
            jpeg.setAlignment(Image.ALIGN_CENTER);
            doc.add(jpeg);
            doc.close();
        }
  catch (BadElementException e)  {
            e.printStackTrace();
        }
  catch (MalformedURLException e)  {
            e.printStackTrace();
        }
  catch (IOException e)  {
            e.printStackTrace();
        }
  catch (DocumentException e)  {
            e.printStackTrace();
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值