<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

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


    網站導航:
     
    主站蜘蛛池模板: 免费国产高清视频| 2020久久精品国产免费| 国产一区二区三区无码免费| 2020天堂在线亚洲精品专区| 免费看男女下面日出水来| 亚洲最新中文字幕| 四虎国产精品免费久久| 99亚偷拍自图区亚洲| 免费无码看av的网站| 黄页网站在线观看免费| 亚洲精品国产高清嫩草影院| 精品一区二区三区免费观看| 亚洲高清视频在线观看| 蜜臀AV免费一区二区三区| 亚洲三级在线免费观看| 日本久久久免费高清| 免费国产黄网站在线观看动图| 久久精品国产亚洲5555| 日本卡1卡2卡三卡免费| 亚洲国产美女精品久久| 韩国18福利视频免费观看| 在线播放免费人成视频网站| 国产亚洲精品a在线观看app| 毛片无码免费无码播放| 亚洲日韩精品国产一区二区三区| 国产精品国产自线拍免费软件| 两个人的视频www免费| 91在线精品亚洲一区二区| 成年人网站在线免费观看| 一级黄色片免费观看| 国产精品亚洲A∨天堂不卡| 无码国产精品一区二区免费| 看免费毛片天天看| 亚洲αv久久久噜噜噜噜噜| 在线观看免费人成视频色| 直接进入免费看黄的网站| 亚洲视频在线观看地址| 亚洲A丁香五香天堂网| 久久久免费精品re6| 国产精品亚洲av色欲三区| 久久精品国产亚洲|