<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Atea - Hero's Grave

    面向對象,開源,框架,敏捷,云計算,NoSQL,商業智能,編程思想。

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      40 隨筆 :: 0 文章 :: 28 評論 :: 0 Trackbacks
    PDF不像EXCEL那樣靈活,要想處理動態數據,基本有2種方法
    1、純程序畫
    風險較大,可行性低
    2、把模板里的動態部分單獨做成模板
    使用Foxit PDF Editor編輯PDF模板元素,把動態數據部分的模板按一條(一行)提取出來單獨做一頁,使用時動態引入。

    以下為示例程序
     1 package itext.my;
     2 
     3 import java.io.ByteArrayOutputStream;
     4 import java.io.FileOutputStream;
     5 import java.io.OutputStream;
     6 
     7 import org.junit.Test;
     8 
     9 import com.lowagie.text.Document;
    10 import com.lowagie.text.Image;
    11 import com.lowagie.text.PageSize;
    12 import com.lowagie.text.pdf.AcroFields;
    13 import com.lowagie.text.pdf.PdfImportedPage;
    14 import com.lowagie.text.pdf.PdfReader;
    15 import com.lowagie.text.pdf.PdfStamper;
    16 import com.lowagie.text.pdf.PdfWriter;
    17 
    18 public class ImportedPages {
    19 
    20     @Test
    21     public void hello() {
    22 
    23         try {
    24             Document document = new Document(PageSize.LETTER, 0000);
    25 
    26             // 1、讀取模板
    27             PdfReader template = new PdfReader("pdf/template/t.pdf");
    28             OutputStream ops = new FileOutputStream("output/t.pdf");
    29             PdfWriter writer = PdfWriter.getInstance(document, ops);
    30             document.open();
    31 
    32             // 2、填模板數據
    33             ByteArrayOutputStream opsTemp = new ByteArrayOutputStream();
    34             PdfStamper stamp = new PdfStamper(template, opsTemp);
    35             AcroFields form = stamp.getAcroFields();
    36             form.setField("XXX""XXX"); // PDF模板上預先設置好的控件
    37             stamp.setFormFlattening(true);
    38             stamp.close();
    39             PdfReader data = new PdfReader(opsTemp.toByteArray());
    40 
    41             // 3、把處理好數據的模板導入當前Document
    42             PdfImportedPage page = writer.getImportedPage(data, 1);
    43             Image image = Image.getInstance(page);
    44             document.add(image);
    45 
    46             // 計算分頁時機
    47             // 有時候需要寫,要不然接下來的內容顯示不出來(比如在一個page里Percent和大于100)
    48             // document.newPage();
    49 
    50             // 4、重復執行2&3以填充動態數據
    51 
    52             // 5、繼續做其他處理
    53 
    54             document.close();
    55             opsTemp.close();
    56             ops.close();
    57 
    58         } catch (Exception e) {
    59             e.printStackTrace();
    60         }
    61 
    62     }
    63 }


    posted on 2009-10-30 15:41 Atea 閱讀(613) 評論(0)  編輯  收藏 所屬分類: iText

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 中文字幕亚洲一区| 亚洲精品无码不卡在线播HE| 亚洲成人免费电影| 午夜无码A级毛片免费视频| 亚洲AV无码一区二区乱孑伦AS | 久久最新免费视频| 在线观看国产区亚洲一区成人 | 国产亚洲精品a在线观看app| 久久久久久久久久免免费精品| 亚洲午夜成人精品电影在线观看| 一级一级毛片免费播放| 在线亚洲97se亚洲综合在线| a级大片免费观看| 91亚洲国产成人久久精品网站| 1000部拍拍拍18勿入免费视频下载 | 亚洲精品视频在线观看你懂的| yy一级毛片免费视频| 亚洲国产综合无码一区| 日本免费中文字幕| 亚洲欧洲精品久久| 老司机永久免费网站在线观看| 立即播放免费毛片一级| 狠狠色伊人亚洲综合成人| 啦啦啦完整版免费视频在线观看 | 免费无遮挡无遮羞在线看| 国产精品V亚洲精品V日韩精品| 国产va在线观看免费| 亚洲综合色区中文字幕| 免费萌白酱国产一区二区| 三年在线观看免费观看完整版中文 | 亚洲av成人一区二区三区在线播放| 亚洲国产精品无码久久青草| 日韩视频在线精品视频免费观看| 亚洲最大的黄色网| 亚洲一区视频在线播放| 久久久精品2019免费观看| 亚洲一区二区三区在线网站| 久久久久亚洲AV综合波多野结衣| 1000部啪啪毛片免费看| 黄色网址在线免费观看| 亚洲综合区图片小说区|