91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

如何在Java中利用iTextPDF生成一個PDF文件

發布時間:2021-02-24 15:17:06 來源:億速云 閱讀:219 作者:戴恩恩 欄目:開發技術

這篇文章主要介紹了如何在Java中利用iTextPDF生成一個PDF文件,億速云小編覺得不錯,現在分享給大家,也給大家做個參考,一起跟隨億速云小編來看看吧!

Java可以用來干什么

Java主要應用于:1. web開發;2. Android開發;3. 客戶端開發;4. 網頁開發;5. 企業級應用開發;6. Java大數據開發;7.游戲開發等。

引入依賴

這里使用的是iText5

  <dependency>
   <groupId>com.itextpdf</groupId>
   <artifactId>itextpdf</artifactId>
   <version>5.5.10</version>
  </dependency>
  <dependency>
   <groupId>com.itextpdf</groupId>
   <artifactId>itext-asian</artifactId>
   <version>5.2.0</version>
  </dependency>

使用步驟簡單介紹

快速入手iText攏共需要5步:

  1. 創建文檔實例 Document

  2. 獲取PdfWriter實例 (需要指定Document實例 和pdf 生成的磁盤路徑)

  3. 打開文檔

  4. 添加段落內容

  5. 關閉操作文檔實例 (操作完成后必須執行文檔關閉操作)

創建工具類

public class PdfUtil {
 // 標準字體
 public static Font NORMALFONT;
 // 加粗字體
 public static Font BOLDFONT;
 //固定高
 public static float fixedHeight = 27f;
 //間距
 public static int spacing = 5;

 static {
  try {
   BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
   NORMALFONT = new Font(bfChinese, 10, Font.NORMAL);
   BOLDFONT = new Font(bfChinese, 14, Font.BOLD);
  } catch (Exception e) {
   e.printStackTrace();
  }

 }

 public static Document createDocument() {
  //生成pdf
  Document document = new Document();
  // 頁面大小
  Rectangle rectangle = new Rectangle(PageSize.A4);
  // 頁面背景顏色
  rectangle.setBackgroundColor(BaseColor.WHITE);
  document.setPageSize(rectangle);
  // 頁邊距 左,右,上,下
  document.setMargins(20, 20, 20, 20);
  return document;
 }


 /**
  * @param text 段落內容
  * @return
  */
 public static Paragraph createParagraph(String text, Font font) {
  Paragraph elements = new Paragraph(text, font);
  elements.setSpacingBefore(5);
  elements.setSpacingAfter(5);
  elements.setSpacingAfter(spacing);
  return elements;
 }


 public static Font createFont(int fontNumber, int fontSize, BaseColor fontColor) {
  //中文字體 ----不然中文會亂碼
  BaseFont bf = null;
  try {
   bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
   return new Font(bf, fontNumber, fontSize, fontColor);
  } catch (Exception e) {
   e.printStackTrace();
  }
  return new Font(bf, Font.DEFAULTSIZE, Font.NORMAL, BaseColor.BLACK);
 }

 /**
  * 隱藏表格邊框線
  *
  * @param cell 單元格
  */
 public static void disableBorderSide(PdfPCell cell) {
  if (cell != null) {
   cell.disableBorderSide(1);
   cell.disableBorderSide(2);
   cell.disableBorderSide(4);
   cell.disableBorderSide(8);
  }
 }


 /**
  * 創建居中得單元格
  *
  * @return
  */
 public static PdfPCell createCenterPdfPCell() {
  PdfPCell cell = new PdfPCell();
  cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
  cell.setHorizontalAlignment(Element.ALIGN_CENTER);
  cell.setFixedHeight(fixedHeight);
  return cell;
 }

 /**
  * 創建指定文字得單元格
  *
  * @param text
  * @return
  */
 public static PdfPCell createCenterPdfPCell(String text, int rowSpan, int colSpan, Font font) {
  PdfPCell cell = new PdfPCell(new Paragraph(text, font));
  cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
  cell.setHorizontalAlignment(Element.ALIGN_LEFT);
  cell.setFixedHeight(fixedHeight);
  cell.setRowspan(rowSpan);
  cell.setColspan(colSpan);
  return cell;
 }

 /**
  * @param len 表格列數
  * @return
  */
 public static PdfPTable createPdfPTable(int len) {
  PdfPTable pdfPTable = new PdfPTable(len);
  pdfPTable.setSpacingBefore(5);
  pdfPTable.setHorizontalAlignment(Element.ALIGN_CENTER);
  return pdfPTable;
 }
}

創建controller進行測試

/**
 * @author Wang Guolong
 * @version 1.0
 * @date 2020/6/28 3:17 下午
 */
@RestController
@RequestMapping("/pdf")
public class PdfController {

 @RequestMapping("/generate")
 public Response generatePDF(HttpServletResponse response) throws Exception {
  String filename = "測試pdf";
  // 設置下載格式為pdf
  response.setContentType("application/x-download");
  response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8") + ".pdf");
  OutputStream os = new BufferedOutputStream(response.getOutputStream());

  // 1. Document document = new Document();
  Document document = PdfUtil.createDocument();
  // 2. 獲取writer
  PdfWriter.getInstance(document, os);
  // 3. open()
  document.open();

  //設置字體
  Font blackFont = PdfUtil.createFont(10, Font.NORMAL, BaseColor.BLACK);
  Font blueFont = PdfUtil.createFont(10, Font.NORMAL, BaseColor.BLUE);
  Font bigFont = PdfUtil.createFont(14, Font.NORMAL, BaseColor.BLACK);
  Font littleFont = PdfUtil.createFont(10, Font.NORMAL, BaseColor.BLACK);

  Paragraph title = PdfUtil.createParagraph("測試pdf", bigFont);
  title.setAlignment(Element.ALIGN_CENTER);
  // 4. 添加段落內容
  document.add(title);
  // 5. close()
  document.close();
  os.close();
  return new Response().setContent("success");
 }
}

以上就是億速云小編為大家收集整理的如何在Java中利用iTextPDF生成一個PDF文件,如何覺得億速云網站的內容還不錯,歡迎將億速云網站推薦給身邊好友。

向AI問一下細節

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

AI

井冈山市| 德昌县| 吴忠市| 夹江县| 邵东县| 缙云县| 灯塔市| 临夏县| 闵行区| 桑日县| 巩留县| 高唐县| 富平县| 肇州县| 柳州市| 收藏| 扎鲁特旗| 平和县| 临朐县| 彭山县| 阿坝县| 涟源市| 新野县| 诏安县| 白山市| 九龙城区| 合江县| 普安县| 嘉定区| 容城县| 平果县| 海林市| 商洛市| 瓦房店市| 隆德县| 辉县市| 天津市| 大方县| 山阳县| 德化县| 泸定县|