当前位置:   article > 正文

java给 img、pdf、ppt、docx、doc、wps、wpt、rtf、xlsx、xls、et、csv添加水印,img、word、ppt、excel 转 pdf_java 把ppt pptx 转成pdf 加水印

java 把ppt pptx 转成pdf 加水印
/**
 * 给img、pdf、ppt、docx、doc、wps、wpt、rtf、xlsx、xls、et、csv添加水印
 * img、word、ppt、excel 转 pdf
 */
  1. import java.awt.*;
  2. import java.awt.Font;
  3. import java.awt.font.FontRenderContext;
  4. import java.awt.geom.Rectangle2D;
  5. import java.awt.image.BufferedImage;
  6. import java.io.*;
  7. import javax.imageio.ImageIO;
  8. import javax.swing.JLabel;
  9. import com.spire.doc.PictureWatermark;
  10. import com.spire.doc.TextWatermark;
  11. import com.spire.pdf.PdfDocument;
  12. import com.spire.pdf.PdfPageBase;
  13. import com.spire.pdf.graphics.PdfImage;
  14. import com.spire.presentation.*;
  15. import com.spire.presentation.drawing.FillFormatType;
  16. import com.itextpdf.text.DocumentException;
  17. import com.itextpdf.text.Element;
  18. import com.itextpdf.text.Rectangle;
  19. import com.itextpdf.text.pdf.BaseFont;
  20. import com.itextpdf.text.pdf.PdfContentByte;
  21. import com.itextpdf.text.pdf.PdfGState;
  22. import com.itextpdf.text.pdf.PdfReader;
  23. import com.itextpdf.text.pdf.PdfStamper;
  24. import org.apache.poi.ss.usermodel.Workbook;
  25. import org.apache.poi.xssf.usermodel.XSSFRelation;
  26. import org.apache.poi.xssf.usermodel.XSSFSheet;
  27. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  28. public class WaterMarkUtils {
  29. /**
  30. * @param args
  31. * @throws IOException
  32. * @throws DocumentException
  33. */
  34. public static void main(String[] args) throws Exception {
  35. String filePath = "E:\\桌面\\水印\\";
  36. //1、给图片添加文字水印
  37. WaterMarkUtils.setWaterMarkToImage("这是水印内容", filePath + "1.jpg", false);
  38. // WaterMarkUtils.img2pdf(filePath + "1.jpg" + "," + filePath + "1_水印.jpg", filePath + "1.pdf", false);
  39. //2、PDF添加动态水印
  40. // WaterMarkUtils.setWaterMarkToPdf("这是水印内容", filePath + "帆软报表.pdf", false);
  41. //3、PPT添加动态水印
  42. // WaterMarkUtils.setWaterMarkToPpt("这是水印内容", filePath + "ppt.ppt", true);
  43. //4、给docx、doc、wps、wpt、rtf加水印
  44. // WaterMarkUtils.setWaterMarkToWps("这是水印内容", filePath + "docx.docx", true);
  45. // WaterMarkUtils.setWaterMarkToWps2(filePath + "3.png", filePath + "docx.docx", true);
  46. // WaterMarkUtils.doc2pdf(filePath + "docx_水印.docx",filePath + "docx_水印222.pdf", false);
  47. // WaterMarkUtils.setWaterMarkToWps("这是水印内容", filePath + "docx.wps", true);
  48. // WaterMarkUtils.setWaterMarkToWps("这是水印内容", filePath + "doc.doc", false);
  49. // WaterMarkUtils.setWaterMarkToWps("这是水印内容", filePath + "wpt.wpt", false);
  50. // WaterMarkUtils.setWaterMarkToWps("这是水印内容", filePath + "rtf.rtf", false);
  51. //5、给excel加水印
  52. // WaterMarkUtils.setWaterMarkToExcel("这是水印内容", filePath + "excel.xlsx", true);
  53. // WaterMarkUtils.setWaterMarkToExcel("这是水印内容", filePath + "excel.xls");
  54. // WaterMarkUtils.setWaterMarkToExcel("这是水印内容", filePath + "excel.et");
  55. // WaterMarkUtils.setWaterMarkToExcel("这是水印内容", filePath + "excel.csv");
  56. // WaterMarkUtils.excel2pdf("E:\\桌面\\水印\\excel2_水印.et", "E:\\桌面\\水印\\excel2_水印.pdf");
  57. }
  58. }
1、图片添加动态文字水印
  1. /**
  2. * 图片添加文字水印
  3. *
  4. * @param 水印内容
  5. * @param 需要加水印的附件地址
  6. */
  7. public static void setWaterMarkToImage(String 水印内容, String 需要加水印的附件地址, boolean 是否转PDF) {
  8. String 水印输出文件地址 = getOutputPath(需要加水印的附件地址);
  9. InputStream is = null;
  10. OutputStream os = null;
  11. try {
  12. // 1、源图片
  13. Image srcImg = ImageIO.read(new File(需要加水印的附件地址));
  14. BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null), srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB);
  15. // 2、得到画笔对象
  16. Graphics2D g = buffImg.createGraphics();
  17. // 3、设置对线段的锯齿状边缘处理
  18. g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
  19. g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg.getHeight(null), Image.SCALE_SMOOTH), 0, 0, null);
  20. // 4、设置水印旋转
  21. g.rotate(Math.toRadians(45), buffImg.getWidth() / 2, buffImg.getHeight() / 2);
  22. // 5、设置水印文字颜色
  23. g.setColor(Color.blue);
  24. // 6、设置水印文字Font
  25. g.setFont(new Font("宋体", Font.BOLD, buffImg.getHeight() / 5));
  26. // 7、设置水印文字透明度
  27. g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 0.3f));
  28. // 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y)
  29. g.drawString(水印内容, buffImg.getWidth() / 3, buffImg.getHeight() / 4);
  30. // 9、释放资源
  31. g.dispose();
  32. // 10、图片后缀
  33. String suffix = 需要加水印的附件地址.substring(需要加水印的附件地址.lastIndexOf(".") + 1);
  34. // 11、生成图片
  35. os = new FileOutputStream(水印输出文件地址);
  36. ImageIO.write(buffImg, suffix, os);
  37. } catch (Exception e) {
  38. e.printStackTrace();
  39. } finally {
  40. try {
  41. if (null != is) {
  42. is.close();
  43. }
  44. } catch (Exception e) {
  45. e.printStackTrace();
  46. }
  47. try {
  48. if (null != os) {
  49. os.close();
  50. }
  51. } catch (Exception e) {
  52. e.printStackTrace();
  53. }
  54. }
  55. if (是否转PDF) {
  56. img2pdf(水印输出文件地址, getPdfPath(需要加水印的附件地址), false);
  57. }
  58. }
2、PDF添加动态文字水印
  1. /**
  2. * PDF添加动态文字水印
  3. *
  4. * @param 水印内容
  5. * @param 需要加水印的附件地址
  6. */
  7. public static void setWaterMarkToPdf(String 水印内容, String 需要加水印的附件地址, boolean 是否删除源文件) throws DocumentException, IOException {
  8. // 1、要输出的pdf文件
  9. BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(getOutputPath(需要加水印的附件地址))));
  10. PdfReader reader = new PdfReader(需要加水印的附件地址);
  11. PdfStamper stamper = new PdfStamper(reader, bos);
  12. // 2、获取总页数 +1, 下面从1开始遍历
  13. int total = reader.getNumberOfPages() + 1;
  14. // 3、使用classpath下面的字体库
  15. BaseFont base = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
  16. JLabel label = new JLabel();
  17. label.setText(水印内容);
  18. FontMetrics metrics = label.getFontMetrics(label.getFont());
  19. // 4、获取水印文字的高度和宽度
  20. int textH = metrics.getHeight();
  21. int textW = metrics.stringWidth(label.getText());
  22. // 5、设置水印透明度
  23. PdfGState gs = new PdfGState();
  24. gs.setFillOpacity(0.3f);
  25. gs.setStrokeOpacity(0.3f);
  26. Rectangle pageSizeWithRotation;
  27. PdfContentByte content;
  28. for (int i = 1; i < total; i++) {
  29. // 6、在内容上方加水印
  30. content = stamper.getOverContent(i);
  31. // 7、在内容下方加水印
  32. // content = stamper.getUnderContent(i);
  33. content.saveState();
  34. content.setGState(gs);
  35. // 8、设置字体和字体大小
  36. content.beginText();
  37. content.setFontAndSize(base, 20);
  38. // 9、获取每一页的高度、宽度
  39. pageSizeWithRotation = reader.getPageSizeWithRotation(i);
  40. float pageHeight = pageSizeWithRotation.getHeight();
  41. float pageWidth = pageSizeWithRotation.getWidth();
  42. // 10、间隔
  43. int interval = -15;
  44. int position = 0;
  45. for (int height = interval + textH; height < pageHeight; height = height + textH * 5) {
  46. for (int width = interval + textW - position * 150; width < pageWidth + textW; width = width + textW) {
  47. // 11、添加水印文字,水印文字成25度角倾斜
  48. content.showTextAligned(Element.ALIGN_LEFT, 水印内容, width - textW, height - textH / 2, 45);
  49. }
  50. position++;
  51. }
  52. content.endText();
  53. }
  54. // 12、关流
  55. stamper.close();
  56. reader.close();
  57. if (是否删除源文件) {
  58. del2file(需要加水印的附件地址);
  59. }
  60. }
3、PPT添加动态文字水印
  1. /**
  2. * PPT添加动态文字水印
  3. *
  4. * @param 水印内容
  5. * @param 需要加水印的附件地址
  6. */
  7. public static void setWaterMarkToPpt(String 水印内容, String 需要加水印的附件地址, boolean 是否转PDF) throws Exception {
  8. // 1、加载PPT源文档
  9. Presentation ppt = new Presentation();
  10. ppt.loadFromFile(需要加水印的附件地址);
  11. String PPT水印文件地址 = getOutputPath(需要加水印的附件地址);
  12. // 2、遍历ppt每一页
  13. for (int p = 0; p < ppt.getSlides().size(); p++) {
  14. // 3、设置文本水印文本宽和高
  15. int width = 300;
  16. int height = 100;
  17. // 4、起始坐标
  18. float x = 10;
  19. float y = 40;
  20. ISlide slide = ppt.getSlides().get(p);
  21. for (int i = 0; i < 4; i++) {
  22. for (int j = 0; j < 4; j++) {
  23. // 5、绘制文本,设置文本格式并将其添加到幻灯片
  24. Rectangle2D.Double rect = new Rectangle2D.Double(x, y, width, height);
  25. IAutoShape shape = slide.getShapes().appendShape(com.spire.presentation.ShapeType.RECTANGLE, rect);
  26. shape.getFill().setFillType(FillFormatType.NONE);
  27. shape.getShapeStyle().getLineColor().setColor(Color.white);
  28. shape.setRotation(-45);
  29. shape.getLocking().setSelectionProtection(true);
  30. shape.getLine().setFillType(FillFormatType.NONE);
  31. shape.getTextFrame().setText(水印内容);
  32. shape.setShapeArrange(ShapeAlignmentEnum.ShapeArrange.SendToBack);
  33. PortionEx textRange = shape.getTextFrame().getTextRange();
  34. textRange.getFill().setFillType(FillFormatType.SOLID);
  35. textRange.getFill().getSolidColor().setColor(new Color(238, 130, 238));
  36. textRange.setFontHeight(20);
  37. x += (100 + ppt.getSlideSize().getSize().getWidth() / 6);
  38. }
  39. x = 30;
  40. y += (100 + ppt.getSlideSize().getSize().getHeight() / 7);
  41. }
  42. }
  43. // 6、保存文档
  44. ppt.saveToFile(PPT水印文件地址, FileFormat.PPTX_2016);
  45. ppt.dispose();
  46. if (是否转PDF) {
  47. //将加水印的PPT转PDF
  48. ppt2pdf(PPT水印文件地址, getPdfPath(需要加水印的附件地址), true);
  49. }
  50. }
4、wps添加文字水印
  1. /**
  2. * docx、doc、wps、wpt、rtf添加文字水印
  3. *
  4. * @param 水印内容
  5. * @throws Exception
  6. */
  7. public static void setWaterMarkToWps(String 水印内容, String 需要加水印的附件地址, boolean 是否转PDF) throws Exception {
  8. String 水印输出文件地址 = getOutputPath(需要加水印的附件地址);
  9. com.spire.doc.Document doc = new com.spire.doc.Document();
  10. doc.loadFromFile(需要加水印的附件地址);
  11. //设置水印内容
  12. TextWatermark txtWatermark = new TextWatermark();
  13. txtWatermark.setText(水印内容);
  14. txtWatermark.setFontSize(75);
  15. txtWatermark.setColor(Color.red);
  16. txtWatermark.setLayout(com.spire.doc.documents.WatermarkLayout.Diagonal);
  17. doc.getSections().get(0).getDocument().setWatermark(txtWatermark);
  18. doc.saveToFile(水印输出文件地址, com.spire.doc.FileFormat.Docx);
  19. if (是否转PDF) {
  20. // 16、转PDF
  21. doc2pdf(水印输出文件地址, getPdfPath(需要加水印的附件地址), false);
  22. }
  23. }
5、wps添加图片水印
  1. /**
  2. * docx、doc、wps、wpt、rtf添加图片水印
  3. *
  4. * @param 水印内容
  5. * @throws Exception
  6. */
  7. public static void setWaterMarkToWps2(String 水印内容, String 需要加水印的附件地址, boolean 是否转PDF) throws Exception {
  8. String 水印输出文件地址 = getOutputPath(需要加水印的附件地址);
  9. com.spire.doc.Document doc = new com.spire.doc.Document();
  10. doc.loadFromFile(需要加水印的附件地址);
  11. //设置水印内容
  12. PictureWatermark picture = new PictureWatermark();
  13. picture.setPicture(水印内容);
  14. picture.setScaling(70);
  15. picture.isWashout(false);
  16. doc.setWatermark(picture);
  17. doc.saveToFile(水印输出文件地址, com.spire.doc.FileFormat.Docx);
  18. if (是否转PDF) {
  19. // 16、转PDF
  20. doc2pdf(水印输出文件地址, getPdfPath(需要加水印的附件地址), false);
  21. }
  22. }
6、excel添加水印
  1. /**
  2. * xlsx、xls、et、csv添加水印
  3. *
  4. * @param 水印内容
  5. * @param 需要加水印的附件地址
  6. * @throws Exception
  7. */
  8. public static void setWaterMarkToExcel(String 水印内容, String 需要加水印的附件地址, boolean 是否转PDF) throws Exception {
  9. String 水印文件输出的地址 = getOutputPath(需要加水印的附件地址);
  10. XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream(需要加水印的附件地址));
  11. // 1、添加水印
  12. ByteArrayOutputStream byteArrayOutputStream = createWaterMark(水印内容);
  13. int pictureIdx = wb.addPicture(byteArrayOutputStream.toByteArray(), Workbook.PICTURE_TYPE_PNG);
  14. // 2、遍历sheet 给每个sheet 添加水印
  15. for (int i = 0; i < wb.getNumberOfSheets(); i++) {
  16. XSSFSheet sheet = wb.getSheetAt(i);
  17. String rID = sheet.addRelation(null, XSSFRelation.IMAGES, wb
  18. .getAllPictures().get(pictureIdx)).getRelationship().getId();
  19. sheet.getCTWorksheet().addNewPicture().setId(rID);
  20. }
  21. // 3、输出添加水印后的文件
  22. ByteArrayOutputStream bos = new ByteArrayOutputStream();
  23. wb.write(bos);
  24. wb.close();
  25. byte[] content = bos.toByteArray();
  26. OutputStream out = null;
  27. out = new FileOutputStream(水印文件输出的地址);
  28. out.write(content);
  29. bos.close();
  30. out.close();
  31. if (是否转PDF) {
  32. // 4、转PDF
  33. excel2pdf(水印文件输出的地址, getPdfPath(需要加水印的附件地址), true);
  34. }
  35. }
下面是:类公共方法
  1. /**
  2. * 给sheet 加水印
  3. *
  4. * @param content 水印文字
  5. */
  6. private static ByteArrayOutputStream createWaterMark(String content) throws IOException {
  7. int width = 200;
  8. int height = 150;
  9. // 1、获取bufferedImage对象
  10. BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
  11. Font font = new Font("微软雅黑", Font.BOLD, 20);
  12. // 2、获取Graphics2d对象
  13. Graphics2D g2d = image.createGraphics();
  14. image = g2d.getDeviceConfiguration().createCompatibleImage(width, height, Transparency.TRANSLUCENT);
  15. g2d.dispose();
  16. g2d = image.createGraphics();
  17. // 3、设置字体颜色和透明度,最后一个参数为透明度
  18. g2d.setColor(new Color(0, 0, 0, 20));
  19. // 4、设置字体
  20. g2d.setStroke(new BasicStroke(1));
  21. // 5、设置字体类型 加粗 大小
  22. g2d.setFont(font);
  23. // 6、设置倾斜度
  24. g2d.rotate(-0.5, (double) image.getWidth() / 2, (double) image.getHeight() / 2);
  25. FontRenderContext context = g2d.getFontRenderContext();
  26. Rectangle2D bounds = font.getStringBounds(content, context);
  27. double x = (width - bounds.getWidth()) / 2;
  28. double y = (height - bounds.getHeight()) / 2;
  29. double ascent = -bounds.getY();
  30. double baseY = y + ascent;
  31. // 7、写入水印文字原定高度过小,所以累计写水印,增加高度
  32. g2d.drawString(content, (int) x, (int) baseY);
  33. // 8、设置透明度
  34. g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
  35. // 9、释放对象
  36. g2d.dispose();
  37. ByteArrayOutputStream os = new ByteArrayOutputStream();
  38. // 10、输出
  39. ImageIO.write(image, "png", os);
  40. return os;
  41. }
  42. /**
  43. * 获取 添加水印后的文件路径
  44. *
  45. * @param 需要加水印的附件地址
  46. * @return
  47. */
  48. private static String getOutputPath(String 需要加水印的附件地址) {
  49. // 1、生成水印后的PDF路径
  50. String path = 需要加水印的附件地址.substring(0, 需要加水印的附件地址.lastIndexOf(".")) + "_水印.";
  51. // 2、文件后缀
  52. String suffix = 需要加水印的附件地址.substring(需要加水印的附件地址.lastIndexOf(".") + 1);
  53. // 3、返回添加水印后的文件路径
  54. return path + suffix;
  55. }
  56. /**
  57. * 获取PDF地址
  58. *
  59. * @param 需要加水印的附件地址
  60. * @return
  61. */
  62. private static String getPdfPath(String 需要加水印的附件地址) {
  63. return 需要加水印的附件地址.substring(0, 需要加水印的附件地址.lastIndexOf(".") + 1) + "pdf";
  64. }
  65. /**
  66. * img转pdf
  67. *
  68. * @param img文件路径
  69. * @param pdf的文件路径
  70. */
  71. public static void img2pdf(String img文件路径, String pdf的文件路径, boolean 是否删除源文件) {
  72. // 验证License 若不验证则转化出的pdf文档会有水印产生
  73. if (!getLicense(2)) {
  74. return;
  75. }
  76. //新建Pdf 文档
  77. PdfDocument pdf = new PdfDocument();
  78. String[] imgUrls = img文件路径.split(",");
  79. for (int i = 0; i < imgUrls.length; i++) {
  80. //添加一页
  81. PdfPageBase page = pdf.getPages().add();
  82. //加载图片
  83. PdfImage image = PdfImage.fromFile(imgUrls[i]);
  84. double widthFitRate = image.getPhysicalDimension().getWidth() / page.getCanvas().getClientSize().getWidth();
  85. double heightFitRate = image.getPhysicalDimension().getHeight() / page.getCanvas().getClientSize().getHeight();
  86. double fitRate = Math.max(widthFitRate, heightFitRate);
  87. //图片大小
  88. double fitWidth = image.getPhysicalDimension().getWidth() / fitRate;
  89. double fitHeight = image.getPhysicalDimension().getHeight() / fitRate;
  90. //绘制图片到PDF
  91. page.getCanvas().drawImage(image, 0, 30, fitWidth, fitHeight);
  92. }
  93. //保存文档
  94. pdf.saveToFile(pdf的文件路径);
  95. pdf.dispose();
  96. if (是否删除源文件) {
  97. del2file(img文件路径);
  98. }
  99. }
  100. /**
  101. * Ppt转pdf
  102. *
  103. * @param ppt的文件路径
  104. * @param pdf的文件路径
  105. * @return
  106. */
  107. public static void ppt2pdf(String ppt的文件路径, String pdf的文件路径, boolean 是否删除源文件) throws Exception {
  108. // 验证License
  109. if (!getLicense(1)) {
  110. return;
  111. }
  112. // 输出pdf路径
  113. File file = new File(pdf的文件路径);
  114. // 输入ppt路径
  115. com.aspose.slides.Presentation pres = new com.aspose.slides.Presentation(ppt的文件路径);
  116. FileOutputStream fileOS = new FileOutputStream(file);
  117. pres.save(fileOS, com.aspose.slides.SaveFormat.Pdf);
  118. fileOS.close();
  119. //删除源文件
  120. if (是否删除源文件) {
  121. del2file(ppt的文件路径);
  122. }
  123. }
  124. /**
  125. * Word转pdf
  126. *
  127. * @param word的文件路径
  128. * @param pdf的文件路径
  129. * @return
  130. */
  131. public static void doc2pdf(String word的文件路径, String pdf的文件路径, boolean 是否删除源文件) {
  132. FileOutputStream os = null;
  133. try {
  134. // 新建一个空白pdf文档
  135. File file = new File(pdf的文件路径);
  136. os = new FileOutputStream(file);
  137. // Address是将要被转化的word文档
  138. com.spire.doc.Document doc = new com.spire.doc.Document(word的文件路径);
  139. // 保存pdf文件
  140. doc.saveToFile(os, com.spire.doc.FileFormat.PDF);
  141. // 删除源文件
  142. if (是否删除源文件) {
  143. del2file(word的文件路径);
  144. }
  145. } catch (Exception e) {
  146. e.printStackTrace();
  147. } finally {
  148. if (os != null) {
  149. try {
  150. os.close();
  151. } catch (IOException e) {
  152. e.printStackTrace();
  153. }
  154. }
  155. }
  156. }
  157. /**
  158. * Excel转pdf
  159. *
  160. * @param excel文件路径
  161. * @param pdf的文件路径
  162. */
  163. public static void excel2pdf(String excel文件路径, String pdf的文件路径, boolean 是否删除源文件) throws Exception {
  164. // 验证License 若不验证则转化出的pdf文档会有水印产生
  165. if (!getLicense(2)) {
  166. return;
  167. }
  168. //读取excel
  169. com.aspose.cells.Workbook wb = new com.aspose.cells.Workbook(excel文件路径);
  170. com.aspose.cells.PdfSaveOptions pdfSaveOptions = new com.aspose.cells.PdfSaveOptions();
  171. pdfSaveOptions.setOnePagePerSheet(true);
  172. // 遍历获取sheet数量
  173. for (int i = 0; i < wb.getWorksheets().getCount(); i++) {
  174. wb.getWorksheets().get(i).getHorizontalPageBreaks().clear();
  175. wb.getWorksheets().get(i).getVerticalPageBreaks().clear();
  176. }
  177. // 导出PDF文件
  178. wb.save(pdf的文件路径, pdfSaveOptions);
  179. //加水印调用方法
  180. //setWaterMarkToPdf("这是水印内容", pdf的文件路径, true);
  181. }
  182. /**
  183. * 删除源文件
  184. *
  185. * @param 需要删除的附件地址
  186. */
  187. public static void del2file(String 需要删除的附件地址) {
  188. String[] imgUrls = 需要删除的附件地址.split(",");
  189. for (int i = 0; i < imgUrls.length; i++) {
  190. File file2 = new File(imgUrls[i]);
  191. file2.delete();
  192. }
  193. }
  194. /**
  195. * 获取license
  196. *
  197. * @return
  198. */
  199. private static InputStream license;
  200. private static boolean getLicense(int type) {
  201. boolean result = false;
  202. try {
  203. // license路径
  204. license = WaterMarkUtils.class.getClassLoader().getResourceAsStream("License.xml");
  205. if (type == 1) {
  206. com.aspose.slides.License aposeLic = new com.aspose.slides.License();
  207. aposeLic.setLicense(license);
  208. } else {
  209. com.aspose.cells.License aposeLic = new com.aspose.cells.License();
  210. aposeLic.setLicense(license);
  211. }
  212. result = true;
  213. } catch (Exception e) {
  214. e.printStackTrace();
  215. }
  216. return result;
  217. }

为了方便代码读取,部分关键参数使用中文!!

  1. <!-- 水印需要用到的工具类 开始-->
  2. <dependency>
  3. <groupId>commons-codec</groupId>
  4. <artifactId>commons-codec</artifactId>
  5. <version>1.4</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>com.itextpdf</groupId>
  9. <artifactId>itextpdf</artifactId>
  10. <version>5.5.9</version>
  11. </dependency>
  12. <dependency>
  13. <groupId>com.itextpdf</groupId>
  14. <artifactId>itext-asian</artifactId>
  15. <version>5.2.0</version>
  16. </dependency>
  17. <dependency>
  18. <groupId>org.aspectj</groupId>
  19. <artifactId>aspectjweaver</artifactId>
  20. <version>1.9.7</version>
  21. </dependency>
  22. <dependency>
  23. <groupId>com.aspose.cells</groupId>
  24. <artifactId>aspose-cells</artifactId>
  25. <version>8.5.5</version>
  26. <scope>system</scope>
  27. <systemPath>${basedir}/src/main/resources/lib/aspose-cells-8.5.2.jar</systemPath>
  28. </dependency>
  29. <dependency>
  30. <groupId>com.aspose.words</groupId>
  31. <artifactId>aspose-words</artifactId>
  32. <version>words-14.9.0-jdk16</version>
  33. <scope>system</scope>
  34. <systemPath>${basedir}/src/main/resources/lib/aspose-words-14.9.0-jdk16.jar</systemPath>
  35. </dependency>
  36. <dependency>
  37. <groupId>org.apache.poi</groupId>
  38. <artifactId>poi-ooxml</artifactId>
  39. <version>4.0.1</version>
  40. </dependency>
  41. <dependency>
  42. <groupId>org.apache.poi</groupId>
  43. <artifactId>poi</artifactId>
  44. <version>4.0.1</version>
  45. </dependency>
  46. <dependency>
  47. <groupId>org.apache.poi</groupId>
  48. <artifactId>poi-examples</artifactId>
  49. <version>4.0.1</version>
  50. </dependency>
  51. <dependency>
  52. <groupId>org.apache.poi</groupId>
  53. <artifactId>poi-excelant</artifactId>
  54. <version>4.0.1</version>
  55. </dependency>
  56. <dependency>
  57. <groupId>org.apache.poi</groupId>
  58. <artifactId>poi-ooxml-schemas</artifactId>
  59. <version>4.0.1</version>
  60. </dependency>
  61. <dependency>
  62. <groupId>org.apache.xmlbeans</groupId>
  63. <artifactId>xmlbeans</artifactId>
  64. <version>3.1.0</version>
  65. </dependency>
  66. <dependency>
  67. <groupId>com.google.guava</groupId>
  68. <artifactId>guava</artifactId>
  69. <version>19.0</version>
  70. </dependency>
  71. <dependency>
  72. <groupId>e-iceblue</groupId>
  73. <artifactId>spire.office.free</artifactId>
  74. <version>5.3.1</version>
  75. </dependency>
  76. <!-- 水印需要用到的工具类 结束-->
com.aspose.cells和com.aspose.words我这里是自己下载的jar,也可使用maven仓库中的包
本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号