<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,商業(yè)智能,編程思想。

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

    以下為示例程序
     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、重復執(zhí)行2&3以填充動態(tài)數據
    51 
    52             // 5、繼續(xù)做其他處理
    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

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲国产精品综合久久网络 | 91精品导航在线网址免费| 婷婷综合缴情亚洲狠狠尤物| 亚洲av乱码一区二区三区香蕉| 美丽的姑娘免费观看在线播放| 亚洲成在人天堂一区二区| 四虎成人精品永久免费AV| 亚洲AV无码AV男人的天堂| 国产精品视频白浆免费视频| 久久久亚洲精品无码| 日本免费一区二区三区| 亚洲第一网站免费视频| 18禁超污无遮挡无码免费网站国产 | 久久国产免费观看精品3| 亚洲精品在线免费看| 无遮免费网站在线入口| 狠狠色伊人亚洲综合网站色| 日本久久久免费高清| 免费看美女午夜大片| 精品国产亚洲一区二区在线观看| 国产一级黄片儿免费看| 亚洲第一福利视频| 免费阿v网站在线观看g| 国产精品亚洲专一区二区三区| 免费日本黄色网址| baoyu777永久免费视频 | 菠萝菠萝蜜在线免费视频| 亚洲一区二区三区无码影院| 国产色无码精品视频免费| 亚洲一区二区三区深夜天堂| 日韩免费无砖专区2020狼| 国产特黄特色的大片观看免费视频| 亚洲国产精品一区二区第一页| 最近免费字幕中文大全视频| 亚洲GV天堂无码男同在线观看 | 亚洲黄色网址在线观看| 免费无码又爽又刺激高潮| 黄色短视频免费看| 亚洲中字慕日产2021| 亚洲国产av无码精品| 国产精品免费大片|