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