1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > pdf 添加水印 页眉页脚 签名

pdf 添加水印 页眉页脚 签名

时间:2021-12-14 23:29:34

相关推荐

pdf 添加水印 页眉页脚 签名

PDF 添加水印、页眉页脚、签名等

接上一篇:itextpdf 利用模板生成pdf 下载_音乐土豆的博客-CSDN博客

1、添加水印

自定义水印内容格式等

public class WaterMark extends PdfPageEventHelper {//定义水印 HELVETICA 大小:30 颜色:GrayColor 灰色Font waterFont = new Font(Font.FontFamily.HELVETICA, 30, Font.BOLD, new GrayColor(0.95f));private String waterContent;public WaterMark(){};public WaterMark(String waterContent){this.waterContent = waterContent;}@Overridepublic void onEndPage(PdfWriter writer, Document document) {for(int i = 0; i < 5; i++) {for(int j = 0; j < 5; j++) {ColumnText.showTextAligned(writer.getDirectContentUnder(),//字体下方Element.ALIGN_CENTER,//居中new Phrase(this.waterContent == null ? "HELLO PDF" : this.waterContent, waterFont),//水印内容(50.5f + i*350),(40.0f + j*150),writer.getPageNumber() % 2 == 1 ? 45 : -45);}}}}

pdf 加入 水印

PdfWriter writer = PdfWriter.getInstance(document, out);//添加水印writer.setPageEvent(new WaterMark("water mark"));

效果如下

2、页眉页脚

自定义页眉页脚

public class MyHeaderFooter extends PdfPageEventHelper {PdfTemplate totalPage;Font hfFont;{try {hfFont = new Font(BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED), 8, Font.NORMAL);} catch (Exception e) {e.printStackTrace();}}/*** 打开文档时,创建一个总页数的模版*/@Overridepublic void onOpenDocument(PdfWriter writer, Document document) {PdfContentByte cb =writer.getDirectContent();totalPage = cb.createTemplate(30, 16);}@Overridepublic void onEndPage(PdfWriter writer, Document document) {PdfPTable table = new PdfPTable(3);try {table.setTotalWidth(PageSize.A4.getWidth() - 100);table.setWidths(new int[] {24, 24, 3});table.setLockedWidth(true);table.getDefaultCell().setFixedHeight(-10);table.getDefaultCell().setBorder(Rectangle.BOTTOM);// 可以直接使用addCell(str),不过不能指定字体,中文无法显示table.addCell(new Paragraph("", hfFont));table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_RIGHT);table.addCell(new Paragraph(writer.getPageNumber() + "/", hfFont));// 总页数PdfPCell cell = new PdfPCell(Image.getInstance(totalPage));cell.setBorder(Rectangle.BOTTOM);table.addCell(cell);// 将页眉写到document中,位置可以指定,指定到下面就是页脚// table.writeSelectedRows(0, -1, 50,PageSize.A4.getHeight() - 20, writer.getDirectContent());table.writeSelectedRows(0, -1, 50,PageSize.A4.getBottom() + 20, writer.getDirectContent());} catch (Exception de) {throw new ExceptionConverter(de);}}/*** 全部完成后,将总页数的pdf模版写到指定位置*/@Overridepublic void onCloseDocument(PdfWriter writer, Document document) {String text = "总" + (writer.getPageNumber()) + "页";ColumnText.showTextAligned(totalPage, Element.ALIGN_LEFT, new Paragraph(text,hfFont), 2, 2, 0);}}

pdf 添加 页眉页脚

//添加页眉页脚writer.setPageEvent(new MyHeaderFooter());

效果如下

3、添加签名

同添加图片

private void appendSignToDocument(Document document){try{Image sign = Image.getInstance("D:\\PDF-TEST\\signName.jpg");sign.setAlignment(Image.ALIGN_RIGHT);//缩放比例sign.scalePercent(4);document.add(sign);}catch (Exception e){e.printStackTrace();}}

如下图

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。