1、jia包
链接:https://pan.baidu.com/s/1mpKd0kpfYq73q3kSlHR6-Q 密码:d0wm
2、代码
package exportpdf;
import com.aspose.cells.SaveFormat;
import com.aspose.cells.Workbook;
import com.lowagie.text.Element;
import com.lowagie.text.Image;
import com.lowagie.text.pdf.*;
import java.awt.*;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
/**
* 导出为 pdf ,带刻章
*
* @Version 1.0
*/
public class ExportPDF {
public static void main(String[] args) throws Exception {
// InputStream licenseIs = Utils.class.getClassLoader().getResourceAsStream("license.xml");
// License aposeLic = new License();
// aposeLic.setLicense(licenseIs);
// 将 XML 另存为 PDF
Workbook wb = new Workbook("C:\\Users\\ca\\Desktop\\11.xlsx");
wb.save("C:\\Users\\ca\\Desktop\\11.pdf", SaveFormat.PDF);
// 加上水印后的 pdf文件
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File("C:\\Users\\ca\\Desktop\\22.pdf")));
// 将pdf文件先加水印然后输出
setWatermark(bos, "C:\\Users\\ca\\Desktop\\11.pdf");
}
/**
* @param bos 输出文件流
* @param input 需要添加水印的文件路径
*/
public static void setWatermark(BufferedOutputStream bos, String input)
throws Exception {
PdfReader reader = new PdfReader(input);
PdfStamper stamper = new PdfStamper(reader, bos);
int total = reader.getNumberOfPages() + 1;
PdfContentByte content;
BaseFont base = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.EMBEDDED);
PdfGState gs = new PdfGState();
// 循环保证每一页 PDF 都能加上水印,有特殊需求也可以改成在固定页码上加水印
for (int i = 1; i < total; i++) {
// content = stamper.getOverContent(i);// 在内容上方加水印
content = stamper.getUnderContent(i); //在内容下方加水印
gs.setFillOpacity(0.2f);
content.setGState(gs);
// 文字水印
content.beginText();
content.setColorFill(Color.black); // 颜色
content.setFontAndSize(base, 15); // 字体和大小
content.setTextMatrix(70, 200); // 设置文本矩阵
// 设置文字水印的文字内容 绝对值位置 和旋转度数
content.showTextAligned(Element.ALIGN_CENTER, "这里是文字水印!!", 150, 830, 0);
content.endText(); // 结束文字水印
// 图片水印
Image image = Image.getInstance("C:\\Users\\ca\\Desktop\\stamp.jpg"); // 图片水印位置
image.setAbsolutePosition(10, 300); // 设置 绝对位置
image.scaleToFit(185, 240);// 设置 图片缩放比例
image.setRotationDegrees(0); // 设置旋转角度
content.addImage(image); // 添加图片水印
}
stamper.close();
}
}