Java在PDF中添加表格過(guò)程詳解
前言
本文將介紹通過(guò)Java編程在PDF文檔中添加表格的方法。添加表格時(shí),可設(shè)置表格邊框、單元格對(duì)齊方式、單元格背景色、單元格合并、插入圖片、設(shè)置行高、列寬、字體、字號(hào)等。
使用工具:Free Spire.PDF for Java (免費(fèi)版)
Jar文件獲取及導(dǎo)入:
- 方法1:通過(guò)官網(wǎng)下載jar文件包。下載后,解壓文件,將lib文件夾下的Spire.Pdf.jar文件導(dǎo)入Java程序。
- 方法2:通過(guò)maven倉(cāng)庫(kù)安裝導(dǎo)入。
Java 代碼示例
Java代碼
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import com.spire.pdf.grid.PdfGrid;
import java.awt.*;
public class AddTable {
public static void main(String[]args){
//創(chuàng)建文檔,添加PDF頁(yè)面
PdfDocument pdf = new PdfDocument();
PdfPageBase page = pdf.getPages().add();
//創(chuàng)建PdfGrid對(duì)象
PdfGrid grid = new PdfGrid();
//設(shè)置單元格內(nèi)邊距、默認(rèn)字體、字體顏色和默認(rèn)背景色
grid.getStyle().setCellPadding(new PdfPaddings(3,3,3,3));
grid.getStyle().setFont(new PdfTrueTypeFont(new Font("Arial Unicode MS", Font.PLAIN,10), true));
grid.getStyle().setTextBrush(PdfBrushes.getBlack());
//創(chuàng)建PdfBorders對(duì)象,并設(shè)置顏色及粗細(xì)
PdfBorders borders= new PdfBorders();
borders.setAll(new PdfPen(PdfBrushes.getWhite(),1f));
//定義數(shù)據(jù)
String[] data = {"學(xué)校;Logo;院校代碼;院校地址",
"四川大學(xué);;10610;成都",
"西南交通大學(xué);;10613;成都",
"電子科技大學(xué);;10614;成都",
"西南石油大學(xué);;10615;成都",
};
String[][] dataSource = new String[data.length][];
for (int i = 0; i < data.length; i++) {
dataSource[i] = data[i].split("[;]");
}
//填充數(shù)據(jù)到表格
grid.setDataSource(dataSource);
//在表格第2列填充圖片并設(shè)置列寬
grid.getRows().get(1).getCells().get(1).getStyle().setBackgroundImage(PdfImage.fromFile("scdx.png"));
grid.getRows().get(2).getCells().get(1).getStyle().setBackgroundImage(PdfImage.fromFile("xnjtdx.png"));
grid.getRows().get(3).getCells().get(1).getStyle().setBackgroundImage(PdfImage.fromFile("dzkjdx.png"));
grid.getRows().get(4).getCells().get(1).getStyle().setBackgroundImage(PdfImage.fromFile("xnsydx.png"));
grid.getColumns().get(1).setWidth(100f);
//縱向合并單元格
grid.getRows().get(1).getCells().get(3).setRowSpan(4);
//設(shè)置表格
for (int i = 0; i < data.length ; i++) {
//設(shè)置每一行的高度
grid.getRows().get(i).setHeight(50f);
//設(shè)置第一列的字體
grid.getRows().get(i).getCells().get(0).getStyle().setFont(new PdfTrueTypeFont(new Font("Arial Unicode MS",Font.PLAIN,12),true));
for(int j =0;j<grid.getColumns().getCount();j++){
//設(shè)置所有單元格居中
grid.getRows().get(i).getCells().get(j).setStringFormat(new PdfStringFormat(PdfTextAlignment.Center,PdfVerticalAlignment.Middle));
//設(shè)置第一行的背景色
grid.getRows().get(0).getCells().get(j).getStyle().setBackgroundBrush(PdfBrushes.getBeige());
}
}
//繪制表格到PDF
grid.draw(page,0,30);
//保存文檔
pdf.saveToFile("添加表格.pdf");
pdf.close();
}
}
表格添加效果:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- java實(shí)現(xiàn)批量導(dǎo)入Excel表格數(shù)據(jù)到數(shù)據(jù)庫(kù)
- Java使用itext5實(shí)現(xiàn)PDF表格文檔導(dǎo)出
- JAVA圖形界面(GUI)之表格的示例代碼
- java 如何往已經(jīng)存在的excel表格里面追加數(shù)據(jù)的方法
- Java Swing組件編程之JTable表格用法實(shí)例詳解
- Java實(shí)現(xiàn)批量導(dǎo)入excel表格數(shù)據(jù)到數(shù)據(jù)庫(kù)中的方法
- Java實(shí)現(xiàn)excel表格轉(zhuǎn)成json的方法
- Java 使用POI生成帶聯(lián)動(dòng)下拉框的excel表格實(shí)例代碼
- Java對(duì)Excel表格的上傳和下載處理方法
- Java easyui樹(shù)形表格TreeGrid的實(shí)現(xiàn)代碼
- Java生成表格圖片的實(shí)例代碼
相關(guān)文章
SpringMVC對(duì)自定義controller入?yún)㈩A(yù)處理方式
這篇文章主要介紹了SpringMVC對(duì)自定義controller入?yún)㈩A(yù)處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
簡(jiǎn)單學(xué)習(xí)Java抽象類(lèi)要點(diǎn)及實(shí)例
提升網(wǎng)絡(luò)請(qǐng)求穩(wěn)定性HttpClient的重試機(jī)制深入理解
SpringBoot如何統(tǒng)一清理數(shù)據(jù)
Java中數(shù)組的使用與注意事項(xiàng)詳解(推薦)
springboot項(xiàng)目或其他項(xiàng)目使用@Test測(cè)試項(xiàng)目接口配置
java實(shí)現(xiàn)簡(jiǎn)單點(diǎn)贊功能
SpringBoot自定義線程池,執(zhí)行定時(shí)任務(wù)方式

