java 给pdf加水印
时间: 2023-09-17 12:15:00 浏览: 43
可以使用 iText 库来给 PDF 文件添加水印。下面是一个简单的示例代码:
```java
import com.itextpdf.io.font.FontConstants;
import com.itextpdf.kernel.color.Color;
import com.itextpdf.kernel.font.PdfFontFactory;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;
import com.itextpdf.layout.element.Rectangle;
import com.itextpdf.layout.property.TextAlignment;
import com.itextpdf.layout.property.VerticalAlignment;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class AddWatermark {
public static void main(String[] args) throws IOException {
String inputFilePath = "input.pdf";
String outputFilePath = "output.pdf";
String watermarkText = "Confidential";
// 创建输出文件
File outputFile = new File(outputFilePath);
// 创建 PDF writer
PdfWriter writer = new PdfWriter(new FileOutputStream(outputFile));
// 创建 PDF document
Document document = new Document(writer);
// 添加页面
for (int i = 1; i <= reader.getNumberOfPages(); i++) {
document.add(new Paragraph(watermarkText)
.setFont(PdfFontFactory.createFont(FontConstants.HELVETICA_BOLD))
.setFontSize(50)
.setFontColor(Color.GRAY)
.setFixedPosition(i, 0, 0, 600)
.setRotationAngle(Math.PI / 4)
.setTextAlignment(TextAlignment.CENTER)
.setVerticalAlignment(VerticalAlignment.MIDDLE)
.setOpacity(0.5f));
}
// 关闭 PDF document
document.close();
}
}
```
在上面的代码中,我们首先创建了一个 PdfWriter,然后创建一个 Document 对象。接着,我们使用 add() 方法在每一页的左上角添加一个水印文本。我们可以设置文本的字体、字号、颜色、位置、旋转角度、对齐方式、垂直对齐方式和不透明度等属性。最后,我们关闭 Document 对象并保存输出文件。