123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344 |
- package com.huimv.receive.common.utils;
- //import cn.bt.common.utils.StringUtils;
- //import cn.bt.modules.process.instance.enums.InstanceStatusEnum;
- //import com.itextpdf.text.*;
- //import com.itextpdf.text.pdf.*;
- import cn.hutool.core.io.IoUtil;
- import javax.servlet.http.HttpServletResponse;
- import java.io.BufferedInputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.InputStream;
- /**
- * @Author: xp
- * @Date: 2021/7/14
- */
- public class PdfUtil {
- /**
- * 返回PDF流
- *
- * @param response 相应设置
- * @param pathName 水印文件路径和名称
- * @throws Exception 异常
- */
- /*public static void returnPdfStream(HttpServletResponse response, String pathName) throws Exception {
- response.setContentType("application/pdf");
- File file = new File(pathName);
- if (file.exists()) {
- FileInputStream in = new FileInputStream(file);
- OutputStream out = response.getOutputStream();
- byte[] b = new byte[1024 * 4];
- int n;
- while ((n = in.read(b)) > -1) {
- out.write(b, 0, n);
- }
- out.flush();
- in.close();
- out.close();
- }
- }*/
- public static void returnPdfStream2(HttpServletResponse response, String pathName, String subsidyNane) throws Exception {
- InputStream in = null;
- try {
- File file = new File(pathName);
- in = new BufferedInputStream(new FileInputStream(file));
- String filename = new String((subsidyNane+".pdf").getBytes(), "ISO8859_1");
- response.setContentType("application/binary;charset=ISO8859_1");
- response.setHeader("Content-disposition", "attachment; filename=" + filename);// 组装附件名称和格式
- IoUtil.copy(in, response.getOutputStream());
- } catch (Exception e) {
- System.out.println("------------ 这里除了问题!!!-----------");
- System.out.println(e);
- }finally {
- if (in != null) {
- in.close();
- }
- }
- }
- public static void returnPdfStream3(HttpServletResponse response, String pathName, String subsidyNane) throws Exception {
- InputStream in = null;
- try {
- File file = new File(pathName);
- in = new BufferedInputStream(new FileInputStream(file));
- String filename = new String((subsidyNane+".xls").getBytes(), "ISO8859_1");
- response.setContentType("application/binary;charset=ISO8859_1");
- response.setHeader("Content-disposition", "attachment; filename=" + filename);// 组装附件名称和格式
- IoUtil.copy(in, response.getOutputStream());
- } catch (Exception e) {
- System.out.println("------------ 这里除了问题!!!-----------");
- System.out.println(e);
- }finally {
- if (in != null) {
- in.close();
- }
- }
- }
- /**
- * 返回水印图片路径
- *
- * @param instanceStatus 流程状态
- * @return 水印图片路径
- */
- // public static String returnWatermarkPath(int instanceStatus) {
- // String watermarkPath = "ioffice-api/src/main/resources/static/watermark";
- // if (InstanceStatusEnum.E_0.getCode().equals(instanceStatus)) {
- // watermarkPath = watermarkPath + "/已作废.png";
- //
- // } else if (InstanceStatusEnum.E_2.getCode().equals(instanceStatus)) {
- // watermarkPath = watermarkPath + "/审批通过.png";
- //
- // } else {
- // watermarkPath = watermarkPath + "/审批中.png";
- // }
- // return watermarkPath;
- // }
- //
- // /**
- // * 建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中。
- // *
- // * @param pdfPath 保存路径
- // * @param document 文档
- // * @param pdfPathName 文件保存路径和名称
- // * @return 书写器(Writer)
- // * @throws Exception
- // */
- // public static PdfWriter createPdfWriter(String pdfPath, Document document, String pdfPathName) throws Exception {
- //
- // //判断文件夹是否存在
- // File file = new File(pdfPath);
- // if (!file.exists()) {
- // file.mkdir();
- // }
- // file = new File(pdfPathName);
- //
- // PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(file));
- // writer.setViewerPreferences(PdfWriter.PageModeUseThumbs);
- //
- // return writer;
- // }
- //
- // /**
- // * 设置第一标题内容
- // *
- // * @param title 第一标题
- // * @param document 文档
- // * @throws Exception 异常
- // */
- // public static void setPdfFirstTitle(String title, Document document) throws Exception {
- // Paragraph paragraph = new Paragraph(title, getPdfChineseFont(0));
- // paragraph.setAlignment(Element.ALIGN_CENTER);
- // paragraph.setSpacingAfter(2);
- // document.add(paragraph);
- // }
- //
- // /**
- // * 设置第二标题内容
- // *
- // * @param title 第二标题
- // * @param document 文档
- // * @param alignment 对齐方式
- // * @param firstLineIndent 第一行缩进
- // * @param spacingAfter 之后间隔
- // * @throws Exception
- // */
- // public static void setPdfSecondTitle(String title, Document document, int alignment, int firstLineIndent, int spacingAfter) throws Exception {
- // Paragraph lsh = new Paragraph(title, getPdfChineseFont(1));
- // lsh.setAlignment(alignment);
- // lsh.setFirstLineIndent(firstLineIndent);
- // lsh.setSpacingAfter(spacingAfter);
- // document.add(lsh);
- // }
- //
- // /**
- // * 设置表格内容 并将表格加入文档中
- // *
- // * @param dates 数据
- // * @param document 文档
- // * @param table 表格
- // * @throws Exception 异常
- // */
- // public static void setPdfTableContent(Object[][] dates, Document document, PdfPTable table) throws Exception {
- // for (int i = 0; i < dates.length; i++) {
- // for (int j = 0; j < dates[i].length; j++) {
- // //表格的单元格
- // PdfPCell pdfCell = new PdfPCell();
- // //设置表格行高
- // if (i > 0 && i < 3) {
- // pdfCell.setMinimumHeight(50);
- // } else {
- // pdfCell.setMinimumHeight(25);
- // }
- // Paragraph paragraph = new Paragraph(dates[i][j] + "", getPdfChineseFont(1));
- // pdfCell.setPhrase(paragraph);
- //
- // setCellStyle(pdfCell);
- // table.addCell(pdfCell);
- // }
- // }
- //
- // document.add(table);
- // }
- //
- // /**
- // * 设置水印
- // *
- // * @param inputFile 要这设置水印的文件路径
- // * @param imageFile 水印图片路径
- // * @param tag 标记
- // * @return 生成水印文件的路径
- // */
- // public static String imageWaterMark(String inputFile, String imageFile, String tag) throws Exception {
- // String[] spe = separatePath(inputFile);
- // String outputFile = spe[0] + tag + "." + spe[1];
- //
- // PdfReader reader = new PdfReader(inputFile);
- // PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(outputFile));
- //
- // int total = reader.getNumberOfPages() + 1;
- //
- // Image image = Image.getInstance(imageFile);
- // //坐标
- // image.setAbsolutePosition(389, 730);
- // //自定义大小
- // image.scaleAbsolute(80, 80);
- // //旋转 弧度
- // image.setRotation(-55);
- //
- // //旋转 角度
- // image.setRotationDegrees(0);
- // //依照比例缩放
- // image.scalePercent(50);
- //
- // PdfGState gs = new PdfGState();
- // // 设置透明度为0.2
- // gs.setFillOpacity(0.2f);
- //
- //
- // PdfContentByte under;
- // //给每一页加水印
- // for (int i = 1; i < total; i++) {
- // under = stamper.getUnderContent(i);
- // under.beginText();
- // // 添加水印图片
- // under.addImage(image);
- // under.setGState(gs);
- // }
- // stamper.close();
- // reader.close();
- // return outputFile;
- // }
- //
- // /**
- // * 拆分原文件路径
- // *
- // * @param path 原文件路径
- // * @return 拆分原路径的数组
- // */
- // public static String[] separatePath(String path) {
- // if (StringUtils.isBlank(path)) {
- // return null;
- // }
- // String[] sep = path.split("\\.");
- // return new String[]{sep[0], sep[1]};
- // }
- //
- // /**
- // * 设置表格单元格样式
- // *
- // * @param pdfCell 单元格对象
- // */
- // public static void setCellStyle(PdfPCell pdfCell) {
- // pdfCell.setHorizontalAlignment(Element.ALIGN_CENTER);
- // pdfCell.setVerticalAlignment(Element.ALIGN_MIDDLE);
- // pdfCell.setBackgroundColor(new BaseColor(0xdd7e6b));
- // pdfCell.setBorderWidthTop(0.1f);
- // pdfCell.setBorderWidthBottom(0.1f);
- // pdfCell.setBorderWidthLeft(0.1f);
- // pdfCell.setBorderWidthRight(0.1f);
- // }
- //
- // /**
- // * 设置pdf字体及大小
- // *
- // * @param type 标题或者内容 0-内容 1-标题
- // * @return 字体
- // * @throws Exception 异常
- // */
- // public static Font getPdfChineseFont(int type) throws Exception {
- // // 使用系统字体
- // BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
- // Font font;
- // if (type == 1) {
- // font = new Font(bfChinese);
- // } else {
- // font = new Font(bfChinese, 18, Font.BOLD);
- // }
- //
- // return font;
- // }
- //
- // /**
- // * 删除文件夹
- // *
- // * @param folderPath 文件路基
- // */
- // public static void delFolder(String folderPath) {
- // // 删除完里面所有内容
- // delAllFile(folderPath);
- // String filePath = folderPath;
- // filePath = filePath.toString();
- // java.io.File myFilePath = new java.io.File(filePath);
- // // 删除空文件夹
- // myFilePath.delete();
- // }
- //
- // /**
- // * 删除指定文件夹下所有文件
- // *
- // * @param path 文件路基
- // * @return 是否成功
- // */
- // public static boolean delAllFile(String path) {
- // boolean flag = false;
- // File file = new File(path);
- // String[] tempList = file.list();
- // File temp = null;
- // for (int i = 0; i < tempList.length; i++) {
- // if (path.endsWith(File.separator)) {
- // temp = new File(path + tempList[i]);
- // } else {
- // temp = new File(path + File.separator + tempList[i]);
- // }
- // if (temp.isFile()) {
- // temp.delete();
- // }
- // if (temp.isDirectory()) {
- // // 先删除文件夹里面的文件
- // delAllFile(path + "/" + tempList[i]);
- // // 再删除空文件夹
- // delFolder(path + "/" + tempList[i]);
- // flag = true;
- // }
- // }
- // return flag;
- // }
- // public static boolean delAllFile(String path) {
- // boolean flag = false;
- // File file = new File(path);
- // File temp = null;
- //
- // if (temp.isFile()) {
- // temp.delete();
- // }
- // return flag;
- // }
- }
|