java导出excel水印_springboot为导出的pdf和excel加水印

这篇博客介绍了如何使用Java为导出的PDF和Excel文件添加水印。对于PDF,利用iText库可以方便地设置水印的透明度和位置。而对于Excel,由于POI库不支持直接添加水印,因此采取了创建带有水印模板的Excel,然后将内容写入模板的方法。代码示例展示了具体实现过程。
摘要由CSDN通过智能技术生成

相信很多小伙伴们在做导出pdf或者excel文件时会被要求在文件上加上水印,本篇博客就来讲讲如何为pdf和excel加水印。

导出pdf加水印

其实在导出pdf时加上水印并不难,因为itext提供了添加水印的方法,而且能设置水印的位置角度等等,直接来看一下代码

public voidcreatePDF(String filename) throws IOException {

Document document= newDocument(PageSize.A4);try{

PdfWriter writer= PdfWriter.getInstance(document, newFileOutputStream(filename));

document.addTitle("example of PDF");

document.open();

PdfPTable table=createTable(writer);

document.add(table);//加入水印

PdfContentByte waterMar =writer.getDirectContentUnder();//开始设置水印

waterMar.beginText();//设置水印透明度

PdfGState gs = newPdfGState();//设置填充字体不透明度为0.2f

gs.setFillOpacity(0.2f);//设置水印字体参数及大小 (这里在上一篇博客中已经讲过了)

BaseFont baseFont = BaseFont.createFont(JavaPdfHelloWorld.class.getResource("/simsun.ttf").getPath(), BaseFont.IDENTI

Java中,我们可以使用Apache POI库来操作Excel文件并添水印。以下是一个简单的步骤概述: 1. **添依赖**: 首先,需要将Apache POI及其衍生库(如XSSF,代表Excel 2007及更高版本)添到你的项目中。如果你使用Maven,可以在pom.xml文件中入以下依赖: ```xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>5.0.0</version> </dependency> ``` 2. **创建Watermark对象**: 使用`XSSFRenderingHint`来设置水印样式。例如,你可以创建一个`XSSFRichTextString`对象作为水印内容,并设置透明度: ```java XSSFRichTextString watermark = new XSSFRichTextString("水印文字"); XSSFRenderingHint hint = new XSSFRenderingHint(); hint.setWatermark(watermark); hint.setFillPattern(WatermarkFillPattern.BACKGROUND); ``` 3. **添水印到工作表**: 在`XSSFWorkbook`对象上创建一个新的`XSSFSheet`,然后在适当的单元格位置设置水印: ```java XSSFSheet sheet = workbook.createSheet("Sheet1"); CellRangeAddress range = new CellRangeAddress(0, 0, 0, 0); // 设置水印范围 sheet.addNewDrawingCellRange(range); Drawing<?> drawing = sheet.getDrawingPatriarch(); ClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 0, 0, 0, 0); Picture pic = drawing.createPicture(anchor, ImageDataFactory.createFromStream(new FileInputStream("watermark.png"))); pic.setRenderHint(hint); ``` 这里假设你有一个名为"watermark.png"的图片文件作为水印。 4. **保存Excel文件**: 最后,通过`Workbook.write()`方法将含有水印的工作簿写入到磁盘上的Excel文件。 ```java workbook.write(outputFile); workbook.close(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值