java 生成pdf文件

来源:互联网 发布:鬼吹灯故事解析 知乎 编辑:程序博客网 时间:2024/05/16 10:40
[java] view plain copy
  1. import java.io.FileOutputStream;  
  2. import java.io.IOException;  
  3.    
  4. import com.lowagie.text.*;  
  5. import com.lowagie.text.pdf.PdfWriter;  
  6. import com.lowagie.text.pdf.BaseFont;  
  7. import com.lowagie.text.Font;  
  8. import java.awt.Color;  
  9.    
  10. public class AsianTest {  
  11.    
  12.     public static void main(String[] args) {  
  13.    
  14.         // 创建一个Document对象  
  15.         Document document = new Document();  
  16.    
  17.         try {  
  18.    
  19.             // 生成名为 AsianTest.pdf 的文档  
  20.             PdfWriter.getInstance(document, new FileOutputStream(  
  21.                     "c://AsianTest.pdf"));  
  22.    
  23.             /** 
  24.              * 新建一个字体,iText的方法 STSongStd-Light 是字体,在iTextAsian.jar 中以property为后缀 
  25.              * UniGB-UCS2-H 是编码,在iTextAsian.jar 中以cmap为后缀 H 代表文字版式是 横版, 相应的 V 
  26.              * 代表竖版 
  27.              */  
  28.             BaseFont bfChinese = BaseFont.createFont("STSongStd-Light",  
  29.                     "UniGB-UCS2-H"false);  
  30.    
  31.             Font bold_fontChinese = new Font(bfChinese, 12, Font.BOLD,  
  32.                     Color.BLACK);  
  33.             Font italic_fontChinese = new Font(bfChinese, 12, Font.ITALIC,  
  34.                     Color.BLACK);  
  35.             Font impressFont = new Font(bfChinese, 16, Font.BOLDITALIC,  
  36.                     Color.BLACK);  
  37.             // 打开文档,将要写入内容  
  38.             document.open();  
  39.    
  40.             // 插入一个段落  
  41.             // Paragraph par = new Paragraph("我们", fontChinese);  
  42.    
  43.             // document.add(par);  
  44.             //  
  45.             document.add(new Paragraph(" ", bold_fontChinese));  
  46.             document.add(new Paragraph(" ", bold_fontChinese));  
  47.             document.add(new Paragraph(" ", bold_fontChinese));  
  48.             String[] Trainspotting1 = { "选择生命,选择工作,选择职业,选择家庭,",  
  49.                     "选择可恶的大彩电,选择洗衣机、汽车、雷射碟机,""选择健康、低胆固醇和牙医保险,选择楼宇按揭,",  
  50.                     "选择你的朋友,选择套装、便服和行李,选择分期付款和三件套西装,",  
  51.                     "选择收看无聊的游戏节目,边看边吃零食……选择你的未来,选择生命……""太多选择,你选择什么,我选择不选择。" };  
  52.             String[] Trainspotting2 = { "这是电影《猜火车》开头的旁白。""这是一个关于“选择”的故事。" };  
  53.             String[] Benjamin1 = { "有些人就在河边出生长大,""有些人被闪电击中,",  
  54.                     "有些人对音乐有着非凡的天赋,""有些人是艺术家,""有人会游泳,""有人懂得做纽扣,",  
  55.                     "有人会背莎士比亚,""而有些人。。。是母亲,""也有些人,可以翩翩起舞。",  
  56.                     "Goodnight  Daisy""Goodnight  Benjamin" };  
  57.             String[] Benjamin2 = { "这是电影《本杰明传奇》结尾的旁白。""这是一个关于“错过”的故事。" };  
  58.             String[] text1 = { "我想说的是,""我们选择,同时,我们错过。" };  
  59.             String[] text2 = { "抛去无可选择的选择,抑或不选择的选择,",  
  60.                     "很有趣的一件事:当面临(太多的)选择,人们会如何选择;""同时,人们又会如何看待错过。" };  
  61.             String[] text3 = { "在开始和结束之间,选择了什么,又会错过什么,我还不知道。" };  
  62.             String[] text4 = { "你会知道么?" };  
  63.             //  
  64.             for (String s : Trainspotting1) {  
  65.                 document.add(new Paragraph(s, italic_fontChinese));  
  66.                 document.add(new Paragraph(" ", italic_fontChinese));  
  67.             }  
  68.             for (String s : Trainspotting2) {  
  69.                 document.add(new Paragraph(s, bold_fontChinese));  
  70.             }  
  71.             document.add(new Paragraph(" ", bold_fontChinese));  
  72.             document.add(new Paragraph(" ", bold_fontChinese));  
  73.             document.add(new Paragraph(" ", bold_fontChinese));  
  74.             for (String s : Benjamin1) {  
  75.                 document.add(new Paragraph(s, italic_fontChinese));  
  76.                 document.add(new Paragraph(" ", italic_fontChinese));  
  77.             }  
  78.             for (String s : Benjamin2) {  
  79.                 document.add(new Paragraph(s, bold_fontChinese));  
  80.             }  
  81.             document.add(new Paragraph(" ", bold_fontChinese));  
  82.             document.add(new Paragraph(" ", bold_fontChinese));  
  83.             document.add(new Paragraph(" ", bold_fontChinese));  
  84.             for (String s : text1) {  
  85.                 document.add(new Paragraph(s, bold_fontChinese));  
  86.             }  
  87.             document.add(new Paragraph(" ", bold_fontChinese));  
  88.             for (String s : text2) {  
  89.                 document.add(new Paragraph(s, bold_fontChinese));  
  90.             }  
  91.             document.add(new Paragraph(" ", bold_fontChinese));  
  92.             for (String s : text3) {  
  93.                 document.add(new Paragraph(s, bold_fontChinese));  
  94.             }  
  95.             document.add(new Paragraph(" ", bold_fontChinese));  
  96.             for (String s : text4) {  
  97.                 document.add(new Paragraph(s, bold_fontChinese));  
  98.             }  
  99.             document.add(new Paragraph(" ", bold_fontChinese));  
  100.             //  
  101.             String[] end = { "Some people were born to sit by a river...",  
  102.                     "Some get struck by light...",  
  103.                     "Some have an ear for music...""Some are artists...",  
  104.                     "Some swim...""Some know buttons...",  
  105.                     "Some know Shakespeare...""Some are mothers...",  
  106.                     "And some people can dance..." };  
  107.             for (String s : end) {  
  108.                 document.add(new Paragraph(s, bold_fontChinese));  
  109.             }  
  110.             document.add(new Paragraph(  
  111.                     "by the way, some people can write code.你", impressFont));  
  112.    
  113.             // Chapter  
  114.             Paragraph title1 = new Paragraph("Chapter 1", italic_fontChinese);  
  115.             Chapter chapter1 = new Chapter(title1, 1);  
  116.             chapter1.setNumberDepth(0);  
  117.             Paragraph title11 = new Paragraph(  
  118.                     "This is Section 1 in Chapter 1中文", italic_fontChinese);  
  119.             Section section1 = chapter1.addSection(title11);  
  120.             Paragraph someSectionText = new Paragraph(  
  121.                     "This text comes as part of section 1 of chapter 1.");  
  122.             section1.add(someSectionText);  
  123.             someSectionText = new Paragraph("Following is a 3 X 2 table.");  
  124.             section1.add(someSectionText);  
  125.             //  
  126.             document.add(chapter1);  
  127.             //  
  128.             // 定义一个图片  
  129.    
  130.             Image jpeg = Image.getInstance("C:/1.jpg");  
  131.    
  132.             // 图片居中  
  133.             jpeg.setAlignment(Image.ALIGN_CENTER);  
  134.             document.add(jpeg);  
  135.         } catch (DocumentException de) {  
  136.             System.err.println(de.getMessage());  
  137.         } catch (IOException ioe) {  
  138.             System.err.println(ioe.getMessage());  
  139.         }  
  140.    
  141.         // 关闭打开的文档  
  142.         document.close();  
  143.     }