溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java在PDF中添加表格過程詳解

發(fā)布時間:2020-10-18 10:31:38 來源:腳本之家 閱讀:268 作者:Miaonly 欄目:編程語言

前言

本文將介紹通過Java編程在PDF文檔中添加表格的方法。添加表格時,可設置表格邊框、單元格對齊方式、單元格背景色、單元格合并、插入圖片、設置行高、列寬、字體、字號等。

使用工具:Free Spire.PDF for Java (免費版)

Jar文件獲取及導入:

  • 方法1:通過官網(wǎng)下載jar文件包。下載后,解壓文件,將lib文件夾下的Spire.Pdf.jar文件導入Java程序。
  • 方法2:通過maven倉庫安裝導入。

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頁面
    PdfDocument pdf = new PdfDocument();
    PdfPageBase page = pdf.getPages().add();
    //創(chuàng)建PdfGrid對象
    PdfGrid grid = new PdfGrid();
    //設置單元格內(nèi)邊距、默認字體、字體顏色和默認背景色
    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對象,并設置顏色及粗細
    PdfBorders borders= new PdfBorders();
    borders.setAll(new PdfPen(PdfBrushes.getWhite(),1f));

    //定義數(shù)據(jù)
    String[] data = {"學校;Logo;院校代碼;院校地址",
        "四川大學;;10610;成都",
        "西南交通大學;;10613;成都",
        "電子科技大學;;10614;成都",
        "西南石油大學;;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列填充圖片并設置列寬
    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);

    //設置表格
    for (int i = 0; i < data.length ; i++) {
      //設置每一行的高度
      grid.getRows().get(i).setHeight(50f);
      //設置第一列的字體
      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++){
        //設置所有單元格居中
        grid.getRows().get(i).getCells().get(j).setStringFormat(new PdfStringFormat(PdfTextAlignment.Center,PdfVerticalAlignment.Middle));
        //設置第一行的背景色
        grid.getRows().get(0).getCells().get(j).getStyle().setBackgroundBrush(PdfBrushes.getBeige());
      }
    }
    //繪制表格到PDF
    grid.draw(page,0,30);
    //保存文檔
    pdf.saveToFile("添加表格.pdf");
    pdf.close();
  }
}

表格添加效果:

Java在PDF中添加表格過程詳解

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI