Java中利用IText7生成PDF

2021-07-29 16:02:55 字數 4246 閱讀 6368

下面介紹幾種itext7生成pdf的一些頁面元素的方法:

(官網1、新增**

import com.itextpdf.kernel.font.pdffont;

import com.itextpdf.kernel.font.pdffontfactory;

import com.itextpdf.kernel.pdf.pdfdocument;

import com.itextpdf.kernel.pdf.pdfwriter;

import com.itextpdf.layout.document;

import com.itextpdf.layout.element.cell;

import com.itextpdf.layout.element.paragraph;

import com.itextpdf.layout.element.table;

import com.itextpdf.layout.property.horizontalalignment;

import com.itextpdf.layout.property.unitvalue;

public class test ).setwidth(unitvalue.createpercentvalue(100));//構建**以100%的寬度

cell cell1=new cell().add(new paragraph("**1")).setfont(sysfont);//向**新增內容

cell cell2=new cell().add(new paragraph("**2")).setfont(sysfont);

cell cell3=new cell().add(new paragraph("**3")).setfont(sysfont);

table.addcell(cell1);

table.addcell(cell2);

table.addcell(cell3);

doc.add(table.sethorizontalalignment(horizontalalignment.center));//將**新增入文件並頁面居中

doc.close();

}public static void main(string args) throws exception

}

效果如下

其中new float為設定每個**的大小比例

2設定**背景顏色以及邊框顏色

pdfdocument pdfdoc = new pdfdocument(new pdfwriter(dest));

document doc = new document(pdfdoc);

pdffont sysfont = pdffontfactory.createfont("stsongstd-light", "unigb-ucs2-h", false);

table table = new table(new float).setwidth(unitvalue.createpercentvalue(70));

cell cell1=new cell().add(new paragraph("**1")).setfont(sysfont).setbackgroundcolor(new devicergb(221,234,238));

cell cell2=new cell().add(new paragraph("**2")).setfont(sysfont).setfontsize(10).settextalignment(textalignment.center);

cell cell3=new cell().add(new paragraph("**3")).setfont(sysfont).setborder(new solidborder(new devicergb(221,234,238), 1));

cell cell4=new cell().add(new paragraph("**4")).setfont(sysfont).setborder(border.no_border);

table.addcell(cell1);

table.addcell(cell2);

table.addcell(cell3);

table.addcell(cell4);

doc.add(table);

doc.close();

效果如下(顏色為rgb顏色)

3向**裡新增文字和

string image = "e:\\project\\1.jpg";// 路徑

table tab = new table(new float );

tab.setwidthpercent(80);

tab.sethorizontalalignment(horizontalalignment.center);

image img = new image(imagedatafactory.create(image));

cell cellimg = new cell().add(img.setautoscale(true))// 向第乙個**中新增

.setborder(new solidborder(new devicergb(148,0,211), 3));

//.setborder(border.no_border);

tab.addcell(cellimg);

cell cell = new cell();

// 文字樣式

text text1 = new text("人類的海洋").setfont(sysfont)

.setfontsize((float) 7.41)

.setfontcolor(new devicergb(46, 46, 46)).setbold();// setbold()字型為加粗

text text2 = new text("保護地球是我們共同的責任,讓我們一起努力,讓我們的地球更美好")

.setfont(sysfont).setfontsize((float) 7.41)

.setfontcolor(new devicergb(46, 46, 46));

cell.settextalignment(textalignment.left)

// 字型居左

.add(new paragraph().add(text1).add("\n").add(text2)

.setfixedleading(15))// setfixedleading為設定行間距

.setborder(new solidborder(new devicergb(139,0,139), 3))//邊界顏色,邊界寬度

.setbackgroundcolor(new devicergb(244, 248, 250));

tab.addcell(cell);

doc.add(tab.sethorizontalalignment(horizontalalignment.left));// 將**新增入文件並頁面居中

doc.close();

效果如下(顏色為rgb顏色)

4新增空行

paragraph blankparagraph1 = new paragraph("");

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

5向指定位置新增元素

float leftedge = 66;

doc.setleftmargin(leftedge);// 左側邊距

image titleimg1=null;

try catch (malformedurlexception e)

titleimg1.setwidth(262);

doc.add(titleimg1);

效果如下(將放置在距離頁面左側66px,距離底部20px的位置)

itext7 批量生成pdf遇到的異常及分析和處理

能正常生成第乙個pdf檔案,然後之後生成的pdf都會丟擲以下異常 com.itextpdf.kernel.pdfexception pdf.inderect object belong to.other pdf document copy object to.current pdf document...

7 生成雜項裝置節點

7.1 介紹 雜項裝置是主裝置號是10的封裝好了的裝置。雜項裝置部分初始化檔案 強制編譯的簡單的 drivers char misc.c 7.2 雜項裝置註冊檔案 1.雜項裝置註冊標頭檔案 include linux miscdevice.h 結構體miscdevice minor裝置號 一般設為m...

dm7生成AWR報告

sp create system packages 1,dbms workload repository 建立dbms workload repository包 call dbms workload repository.awr set interval 10 設定awr的時間間隔 10分鐘 dbm...