From e4b5fef59ea127c76f46ba785c19e9da46c9514d Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期一, 16 十二月 2024 18:12:13 +0800 Subject: [PATCH] zjh202412016 --- ltkj-admin/src/main/java/com/ltkj/web/config/pdfutils/PdfUtils.java | 141 ++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 134 insertions(+), 7 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 e175625..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,14 @@ * @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/"; /** @@ -50,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); + } } /** @@ -93,7 +111,7 @@ return font; } catch (Exception e) { e.printStackTrace(); - throw new RuntimeException("璁剧疆瀛椾綋澶辫触锛�"); + throw new RuntimeException("璁剧疆瀛椾綋澶辫触锛�"+FONT_PATH); } } @@ -150,7 +168,7 @@ * @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}); //鐢绘爣棰� @@ -163,6 +181,47 @@ table.addCell(createCell(tjPdfVO.getProResult(), textFont)); table.addCell(createCell(tjPdfVO.getCompany(), 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; } @@ -202,9 +261,10 @@ * @param list * @return */ - public static PdfPTable setTable2(Font headFont, Font textFont, String[] title, List<TjPdfVO> list) { + public static PdfPTable setTable2(Font headFont, Font textFont, String[] title, List<TjPdfVO> list,boolean flag,float[] titleWidth) { //鍥涘垪 - PdfPTable table = createTable(new float[]{240, 240,240}); + PdfPTable table = createTable(titleWidth); +// PdfPTable table = createTable(new float[]{240, 240,240}); //鐢绘爣棰� for (String head : title) { table.addCell(createCell(head, headFont)); @@ -214,12 +274,53 @@ 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; } - private static PdfPTable createTable(float[] widths) { + public static PdfPTable createTable(float[] widths) { PdfPTable table = new PdfPTable(widths); try { // 璁剧疆琛ㄦ牸澶у皬 @@ -244,7 +345,7 @@ 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); @@ -259,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