<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ā)表評論。


    網站導航:
     
    主站蜘蛛池模板: 日本亚洲免费无线码| caoporn成人免费公开| 2017亚洲男人天堂一| 亚洲AV香蕉一区区二区三区| 国产免费区在线观看十分钟| 性短视频在线观看免费不卡流畅| 国产一区视频在线免费观看| 精品无码一区二区三区亚洲桃色| 国产成人亚洲综合a∨| 精品无码国产污污污免费网站| 亚洲裸男gv网站| 亚洲综合色7777情网站777| 57PAO成人国产永久免费视频 | 免费真实播放国产乱子伦| 国产亚洲漂亮白嫩美女在线| 免费国产真实迷j在线观看| 亚洲人成网站在线观看播放青青| 精品国产呦系列在线观看免费| 精品亚洲视频在线观看| 羞羞视频免费网站含羞草| 国产精品免费精品自在线观看| 亚洲精品视频在线观看视频| 日韩免费高清播放器| 亚洲欧洲久久久精品| 中文字幕的电影免费网站| 亚洲第一区在线观看| 亚洲精品久久久久无码AV片软件| 免费人成视频在线观看网站| 亚洲午夜AV无码专区在线播放| 亚洲第一成年网站视频| 四虎精品亚洲一区二区三区| 亚洲.国产.欧美一区二区三区| 亚洲第一永久AV网站久久精品男人的天堂AV| 男人扒开添女人下部免费视频| 免费v片视频在线观看视频| 中国一级特黄高清免费的大片中国一级黄色片 | 亚洲美女一区二区三区| 免费黄网站在线观看| 久久亚洲精品视频| 爱丫爱丫影院在线观看免费| 亚洲国产电影在线观看|