From b8bf9a10ca1c65e94d75a2db5550e6263b582512 Mon Sep 17 00:00:00 2001
From: zhaowenxuan <chacca165@163.com>
Date: 星期一, 16 十二月 2024 15:01:41 +0800
Subject: [PATCH] 调整结果项目状态判断结论增加非空判断

---
 ltkj-admin/src/main/java/com/ltkj/web/config/pdfutils/PdfUtils.java |  175 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 165 insertions(+), 10 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/config/pdfutils/PdfUtils.java b/ltkj-admin/src/main/java/com/ltkj/web/config/pdfutils/PdfUtils.java
index 150bf13..eb2050c 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/config/pdfutils/PdfUtils.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/config/pdfutils/PdfUtils.java
@@ -1,15 +1,19 @@
 package com.ltkj.web.config.pdfutils;
 
+import cn.hutool.core.io.FileUtil;
 import com.itextpdf.text.*;
 import com.itextpdf.text.pdf.BaseFont;
 import com.itextpdf.text.pdf.PdfContentByte;
 import com.itextpdf.text.pdf.PdfPCell;
 import com.itextpdf.text.pdf.PdfPTable;
 import com.ltkj.hosp.domain.TjPdfVO;
+import lombok.extern.slf4j.Slf4j;
 
 import javax.servlet.http.HttpServletResponse;
+import java.io.File;
 import java.io.IOException;
 import java.net.URLEncoder;
+import java.nio.file.Files;
 import java.util.List;
 
 import static com.itextpdf.text.Rectangle.NO_BORDER;
@@ -19,12 +23,15 @@
  * @Author: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃/lige
  * @Date: 2022/12/8 9:31
  */
+@Slf4j
 public class PdfUtils {
 
     /**
      * 瀛椾綋瀛樻斁鐨勮窡璺緞锛岄粯璁や负'C:\Windows\Fonts\'
      */
-    private static final String FONT_PATH = "C:\\Windows\\Fonts\\";
+    private static final String FONT_PATH = System.getProperty("user.dir") + File.separator + "ltkj-admin"+File.separator+"src"+File.separator+"main"+File.separator+"resources"+File.separator+"Font"+File.separator;
+//    private static final String FONT_PATH = "C:\\Windows\\Fonts\\";
+//    private static final String FONT_PATH = "/Users/chacca/寮�鍙戠浉鍏�/浠g爜/ltkj_peis/ltkj-admin/src/main/resources/Font/";
 
     /**
      * 绾稿紶澶у皬
@@ -38,7 +45,7 @@
      * @throws DocumentException
      * @throws IOException
      */
-    private static BaseFont createBaseFont(String fontName) throws DocumentException, IOException {
+    public static BaseFont createBaseFont(String fontName) throws DocumentException, IOException {
         // 榛樿涓哄畫浣�
         if (fontName == null) {
             fontName = "simsun.ttc";
@@ -49,7 +56,19 @@
             fontName = fontName + ",0";
         }
         String font = FONT_PATH + fontName;
+//        log.info("瀛椾綋璺緞 -> {}",font);
         return BaseFont.createFont(font, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
+    }
+
+    public static void main(String[] args) {
+        try {
+            BaseFont simsun = createBaseFont(null);
+            System.out.println("simsun = " + simsun);
+        } catch (DocumentException e) {
+            throw new RuntimeException(e);
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
     }
 
     /**
@@ -92,7 +111,7 @@
             return font;
         } catch (Exception e) {
             e.printStackTrace();
-            throw new RuntimeException("璁剧疆瀛椾綋澶辫触锛�");
+            throw new RuntimeException("璁剧疆瀛椾綋澶辫触锛�"+FONT_PATH);
         }
     }
 
@@ -149,9 +168,9 @@
      * @param list
      * @return
      */
-    public static PdfPTable setTable(Font headFont, Font textFont, String[] title, List<TjPdfVO> list) {
+    public static PdfPTable setTable(Font headFont, Font textFont, String[] title, List<TjPdfVO> list,boolean flag) {
         //鍥涘垪
-        PdfPTable table = createTable(new float[]{120, 120, 120, 120});
+        PdfPTable table = createTable(new float[]{120, 120, 120});
         //鐢绘爣棰�
         for (String head : title) {
             table.addCell(createCell(head, headFont));
@@ -161,7 +180,48 @@
             table.addCell(createCell(tjPdfVO.getProName(), textFont));
             table.addCell(createCell(tjPdfVO.getProResult(), textFont));
             table.addCell(createCell(tjPdfVO.getCompany(), textFont));
-            table.addCell(createCell(tjPdfVO.getStandardValue(), textFont));
+//            table.addCell(createCell(tjPdfVO.getStandardValue(), textFont));
+            if ((tjPdfVO.getSj() != null || tjPdfVO.getTs() != null) && flag){
+                PdfPCell cell = new PdfPCell();
+                // 姘村钩銆佸瀭鐩村眳涓�
+                cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+                cell.setHorizontalAlignment(Element.ALIGN_LEFT);
+                cell.setPhrase(new Phrase("妫�鏌ユ墍瑙侊細", textFont));
+                // 璁剧疆鏃犺竟妗�
+                cell.setBorder(Rectangle.NO_BORDER);
+                cell.setColspan(3);
+                table.addCell(cell);
+
+                cell = new PdfPCell();
+                // 姘村钩銆佸瀭鐩村眳涓�
+                cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+                cell.setHorizontalAlignment(Element.ALIGN_LEFT);
+                cell.setPhrase(new Phrase(tjPdfVO.getSj(), textFont));
+                // 璁剧疆鏃犺竟妗�
+                cell.setBorder(Rectangle.NO_BORDER);
+                cell.setColspan(3);
+                table.addCell(cell);
+
+                cell = new PdfPCell();
+                // 姘村钩銆佸瀭鐩村眳涓�
+                cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+                cell.setHorizontalAlignment(Element.ALIGN_LEFT);
+                cell.setPhrase(new Phrase("缁撹锛�", textFont));
+                // 璁剧疆鏃犺竟妗�
+                cell.setBorder(Rectangle.NO_BORDER);
+                cell.setColspan(3);
+                table.addCell(cell);
+
+                cell = new PdfPCell();
+                // 姘村钩銆佸瀭鐩村眳涓�
+                cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+                cell.setHorizontalAlignment(Element.ALIGN_LEFT);
+                cell.setPhrase(new Phrase(tjPdfVO.getTs(), textFont));
+                // 璁剧疆鏃犺竟妗�
+                cell.setBorder(Rectangle.NO_BORDER);
+                cell.setColspan(3);
+                table.addCell(cell);
+            }
         }
         return table;
     }
@@ -191,7 +251,76 @@
         return table;
     }
 
-    private static PdfPTable createTable(float[] widths) {
+    /**
+     * 璁剧疆
+     * 琛ㄦ牸鍐呭
+     *
+     * @param headFont
+     * @param textFont
+     * @param title
+     * @param list
+     * @return
+     */
+    public static PdfPTable setTable2(Font headFont, Font textFont, String[] title, List<TjPdfVO> list,boolean flag,float[] titleWidth) {
+        //鍥涘垪
+        PdfPTable table = createTable(titleWidth);
+//        PdfPTable table = createTable(new float[]{240, 240,240});
+        //鐢绘爣棰�
+        for (String head : title) {
+            table.addCell(createCell(head, headFont));
+        }
+        //鐢诲唴瀹�
+        for (TjPdfVO tjPdfVO : list) {
+            table.addCell(createCell(tjPdfVO.getProName(), textFont));
+            table.addCell(createCell(tjPdfVO.getProResult(), textFont));
+            table.addCell(createCell(tjPdfVO.getCompany(), textFont));
+            if ((tjPdfVO.getSj() != null || tjPdfVO.getTs() != null) && flag){
+                PdfPCell cell = new PdfPCell();
+                // 姘村钩銆佸瀭鐩村眳涓�
+                cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+                cell.setHorizontalAlignment(Element.ALIGN_LEFT);
+                cell.setPhrase(new Phrase("妫�鏌ユ墍瑙侊細", textFont));
+                // 璁剧疆鏃犺竟妗�
+                cell.setBorder(Rectangle.NO_BORDER);
+                cell.setColspan(3);
+                table.addCell(cell);
+
+                cell = new PdfPCell();
+                // 姘村钩銆佸瀭鐩村眳涓�
+                cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+                cell.setHorizontalAlignment(Element.ALIGN_LEFT);
+                cell.setPhrase(new Phrase(tjPdfVO.getSj(), textFont));
+                // 璁剧疆鏃犺竟妗�
+                cell.setBorder(Rectangle.NO_BORDER);
+                cell.setColspan(3);
+                table.addCell(cell);
+
+                cell = new PdfPCell();
+                // 姘村钩銆佸瀭鐩村眳涓�
+                cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+                cell.setHorizontalAlignment(Element.ALIGN_LEFT);
+                cell.setPhrase(new Phrase("缁撹锛�", textFont));
+                // 璁剧疆鏃犺竟妗�
+                cell.setBorder(Rectangle.NO_BORDER);
+                cell.setColspan(3);
+                table.addCell(cell);
+
+                cell = new PdfPCell();
+                // 姘村钩銆佸瀭鐩村眳涓�
+                cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+                cell.setHorizontalAlignment(Element.ALIGN_LEFT);
+                cell.setPhrase(new Phrase(tjPdfVO.getTs(), textFont));
+                // 璁剧疆鏃犺竟妗�
+                cell.setBorder(Rectangle.NO_BORDER);
+                cell.setColspan(3);
+                table.addCell(cell);
+            }
+        }
+        return table;
+    }
+
+
+    public static PdfPTable createTable(float[] widths) {
         PdfPTable table = new PdfPTable(widths);
         try {
             // 璁剧疆琛ㄦ牸澶у皬
@@ -203,7 +332,7 @@
             //table.setSpacingAfter(3f);
 
             // 灞呬腑
-            table.setHorizontalAlignment(Element.ALIGN_CENTER);
+            table.setHorizontalAlignment(Element.ALIGN_LEFT);
             // 杈规
             //table.getDefaultCell().setBorder(1);
             table.getDefaultCell().setBorder(0);
@@ -216,11 +345,11 @@
         return table;
     }
 
-    private static PdfPCell createCell(String value, Font font) {
+    public static PdfPCell createCell(String value, Font font) {
         PdfPCell cell = new PdfPCell();
         // 姘村钩銆佸瀭鐩村眳涓�
         cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
-        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
+        cell.setHorizontalAlignment(Element.ALIGN_LEFT);
         cell.setPhrase(new Phrase(value, font));
 
         // 璁剧疆鏃犺竟妗�
@@ -231,4 +360,30 @@
 
         return cell;
     }
+
+    /**
+     *
+     * @param value
+     * @param font
+     * @param boder Rectangle绫荤殑鏋氫妇
+     * @param txtAlign Element绫荤殑鏋氫妇
+     * @return
+     */
+    public static PdfPCell createCell(String value, Font font,int boder,int txtAlign,Float paddingTop,Float paddingBottom) {
+        PdfPCell cell = new PdfPCell();
+        // 姘村钩銆佸瀭鐩村眳涓�
+        cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+        cell.setHorizontalAlignment(txtAlign);
+        cell.setPhrase(new Phrase(value, font));
+        if (paddingTop != null)
+            cell.setPaddingTop(paddingTop);
+        if (paddingBottom != null)
+            cell.setPaddingBottom(paddingBottom);
+        // 璁剧疆鏃犺竟妗�
+        cell.setBorder(boder);
+        // 璁剧疆楂樺害
+        //cell.setFixedHeight(20);
+
+        return cell;
+    }
 }

--
Gitblit v1.8.0