iText匯出PDF使用小結

2021-08-24 21:35:26 字數 3467 閱讀 3880

新建一pdf頁面,設定輸出流:

document document = new document(pagesize.a4, 20, 20, 20, 20);//上下左右的頁面邊距

bytearrayoutputstream buffer = new bytearrayoutputstream();

pdfwriter writer = pdfwriter.getinstance(document, buffer);//設定輸出流

pdf文件進行加密:

writer.setencryption(pdfwriter.strength128bits, "", "",  pdfwriter.allowprinting);

第二和第三個引數分別是使用者檢視密碼和主人編輯密碼。

許可權方面,預設全部不允許,主要有一下許可權控制:

pdfwriter.allowprinting

pdfwriter.allowmodifycontents

pdfwriter.allowcopy

pdfwriter.allowmodifyannotations

pdfwriter.allowfillin

pdfwriter.allowscreenreaders

pdfwriter.allowassembly

pdfwriter.allowdegradedprinting

定義中文字型:

目前高版本的itext jar包中大都不提供中文字型,這裡使用的是itext1.4.5.jar,裡面包含了中文字型。

basefont bfchinese = basefont.createfont("stsong-light", "unigb-ucs2-h", basefont.not_embedded);

font fontchinese = new font(bfchinese,10);

頁首中插入**,**裡面插入:

image img = image.getinstance(new url(""));

img.scalepercent(60);//這只縮放比例,這裡是60%

img.setabsoluteposition(0, 0);

table t = new table(2,1);

int w = ;

t.setwidths(w);

t.setwidth(100);

t.setdefaulthorizontalalignment(element.align_left);

t.setdefaultverticalalignment(element.align_middle);

t.setautofillemptycells(true); //自動填滿

t.setpadding(0);

t.setspacing(0);

t.setdefaultcellborder(0);

t.setborder(0);

cell cell = new cell();

cell.add(img);

cell.setverticalalignment(element.align_center);

t.addcell(cell);

phrase p = new phrase();

p.add(t);

headerfooter header = new headerfooter(p,false);

header.setborder(0);

document.setheader(header);

純文字頁尾:

phrase p = new phrase("杭州市西湖區\n第二行文字",fontchinese);

headerfooter footer = new headerfooter(p,false);//第二個引數是false表示不輸出頁碼資訊

footer.setborder(0);

footer.setalignment(element.align_center);

document.setfooter(footer);

帶頁碼的頁尾:

headerfooter footer = new headerfooter(new phrase("頁碼:",fontchinese, true);  

或者:headerfooter footer = new headerfooter(new phrase("第:",fontchinese), new phrase("頁",fontchinese));

footer.setborder(rectangle.no_border);

document.setfooter(footer);

帶表頭的分頁**(**資料比較多,每頁第一行是表頭資訊):

table detailtable = new table(3);

int detailwidth = ;//每列寬度百分比

detailtable.setwidths(detailwidth);

detailtable.setwidth(100); // 佔頁面寬度 100%

detailtable.setdefaulthorizontalalignment(element.align_left);

detailtable.setdefaultverticalalignment(element.align_middle);

detailtable.setautofillemptycells(true); //自動填滿

detailtable.setpadding(1);

detailtable.setspacing(0);

//表頭部分

cell cellheader = new cell(new phrase("表頭一",fontchinese));

cellheader.setheader(true);

detailtable.addcell(cellheader);

cellheader = new cell(new phrase("表頭二",fontchinese));

cellheader.setheader(true);

detailtable.addcell(cellheader);

cellheader = new cell(new phrase("表頭三",fontchinese));

cellheader.setheader(true);

detailtable.addcell(cellheader);

detailtable.endheaders();

for(int i=0; i< 50; i++)

document.add(detailtable);

itext實現pdf匯出

itext 2.1.4.jar itextasian.jar 中文必備,否則不顯示 程式設計師的一貫風格不多說,上 pdf 匯出的title string titlearr string header 訂單資訊 orderservice orderservice orderservice wac.g...

利用iText技術匯出PDF到本地

從資料庫將資料 用pdf匯出 模擬列表資料 listlist new arraylist string ss1 string ss2 string ss3 list.add ss1 list.add ss2 list.add ss3 寫出乙個pdf的文件檔案 try pdfptable.getdef...

使用iText操作pdf檔案

itext建立pdf檔案是十分簡單的,為了演示其極其簡單性,我們做乙個helloworld吧,讓大家體驗一下。在這個pdf檔案中,我們只顯示一句話 hello world 實現方式如下 建立乙個文件物件 document doc new document try catch filenotfound...