ITEXT是一个比较强大的PDF文档生成工具,同时还可以生成RTF及HTML文档,官网帮助文档地址: [url]http://itextdocs.lowagie.com/tutorial/general/index.php[/url]
   /**
    * 中英文的简单输出
    *    
    * @throws IOException
    */

   private void test1() throws IOException {
    Document document = new Document();
     try {
      FileOutputStream fos = new FileOutputStream( "hello.pdf");
      PdfWriter.getInstance(document, fos);
      document.open();
      document.add( new Paragraph( "Hello World"));
       // 此处需要引用iTextAsian.jar
      BaseFont bfChinese = BaseFont.createFont( "STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
      Font FontChinese = new Font(bfChinese, 12, Font.NORMAL);
      document.add( new Paragraph( "中引文egnli大家好啊", FontChinese));
    } catch (FileNotFoundException e) {
       // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (DocumentException e) {
       // TODO Auto-generated catch block
      e.printStackTrace();
    }
    document.close();

  }
 
   /**
    * 多种格式的输出(PDF,RTF,HTML)
    */

   private void test6() {
    System.out.println( "Hello World in PDF, RTF and HTML");

     // step 1: creation of a document-object
    Document document = new Document();
     try {
       // step 2:
       // we create 3 different writers that listen to the document
      PdfWriter pdf = PdfWriter.getInstance(document, new FileOutputStream( "HelloWorldPdf.pdf"));
      RtfWriter2 rtf = RtfWriter2.getInstance(document, new FileOutputStream( "HelloWorldRtf.rtf"));
      HtmlWriter.getInstance(document, new FileOutputStream( "HelloWorldHtml.html"));

       // step 3: we open the document
      document.open();
       // step 4: we add a paragraph to the document
      document.add( new Paragraph( "Hello World"));
       // we make references
      Anchor pdfRef = new Anchor( "see Hello World in PDF.");
      pdfRef.setReference( "./HelloWorldPdf.pdf");
      Anchor rtfRef = new Anchor( "see Hello World in RTF.");
      rtfRef.setReference( "./HelloWorldRtf.rtf");

       // we add the references, but only to the HTML page:

      pdf.pause();
      rtf.pause();
      document.add(pdfRef);
      document.add(Chunk.NEWLINE);
      document.add(rtfRef);
      pdf.resume();
      rtf.resume();

    } catch (DocumentException de) {
      System.err.println(de.getMessage());
    } catch (IOException ioe) {
      System.err.println(ioe.getMessage());
    }

     // step 5: we close the document
    document.close();
  }
 
   /**
    * 对PDF文件进行加密
    */

   private void test7() {
    System.out.println( "Hello World Encrypted");

     // 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 writer = PdfWriter.getInstance(document, new FileOutputStream( "HelloEncrypted.pdf"));
       // 这里需要引用到第三包JAR包:bcprov-jdk14-138.jar
       // 设置了两个密码:第一个为用户密码pwu,第二个为所有者密码pwo
      writer.setEncryption( "pwu".getBytes(), "pwo".getBytes(), PdfWriter.ALLOW_COPY | PdfWriter.ALLOW_PRINTING,
          PdfWriter.STANDARD_ENCRYPTION_128);
       // step 3: we open the document
      document.open();
       // step 4: we add a paragraph to the document
      document.add( new Paragraph( "Hello World"));
    } catch (DocumentException de) {
      System.err.println(de.getMessage());
    } catch (IOException ioe) {
      System.err.println(ioe.getMessage());
    }

     // step 5: we close the document
    document.close();
  }
 
   /**
    * 设置文档的元数据(Metadata)
    */

   private void test8() {
    System.out.println( "Metadata");

     // 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( "HelloWorldMeta.pdf"));

       // step 3: we add some metadata open the document
      document.addTitle( "Hello World example");
      document.addSubject( "This example explains how to add metadata.");
      document.addKeywords( "iText, Hello World, step 3, metadata");
      document.addCreator( "My program using iText");
      document.addAuthor( "Bruno Lowagie");
      document.open();
       // step 4: we add a paragraph to the document
      document.add( new Paragraph( "Hello World"));
    } catch (DocumentException de) {
      System.err.println(de.getMessage());
    } catch (IOException ioe) {
      System.err.println(ioe.getMessage());
    }

     // step 5: we close the document
    document.close();
  }