读书人

给pdf文档增多水印

发布时间: 2012-11-01 11:11:33 作者: rapoo

给pdf文档增加水印
用itext给pdf文档增加水印功能。

/** * 增加水印的方法 * @param watermark * @param inputPfdFilePath * @param outputPdfFilePath */public void addWatermark(String watermark, String inputPfdFilePath, String outputPdfFilePath){try {PdfReader reader = new PdfReader(inputPfdFilePath);PdfStamper stamper = new PdfStamper(reader,new FileOutputStream(outputPdfFilePath));float height = reader.getPageSize(1).getHeight();float width = reader.getPageSize(1).getWidth();int total = reader.getNumberOfPages() + 1; BaseFont base = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);PdfContentByte under = null;for(int k=1;k<total;k++){under = stamper.getUnderContent(k);under.beginText();under.setColorFill(new BaseColor(200,200,200));under.setFontAndSize(base, 50);//增加水印under.showTextAligned(PdfContentByte.ALIGN_CENTER,watermark,width/2,height/2,45.0f);under.endText();}stamper.close();} catch (IOException e) {e.printStackTrace();} catch (DocumentException e) {e.printStackTrace();}}

上面的方法仅提供了一个简单的生成水印的功能。
对于更完善的水印效果并没有实现,例如水印的字体大小会随水印字体的长度变化而变化,水印字体无法被选中等功能还是未能实现。至于该怎么去实现,就交给你们这些牛人吧。
ps:itext相关jar包的下载可以访问http://www.itextpdf.com/。 1 楼 sanry 2011-05-11 如果源文件我不想从磁盘中读取,通过程序生成pdf文件后加水印然后直接用流输出到页面,怎么处理?????
恳请指教! 2 楼 qianhaitian 2011-09-22 sanry 写道如果源文件我不想从磁盘中读取,通过程序生成pdf文件后加水印然后直接用流输出到页面,怎么处理?????
恳请指教!
同求.

读书人网 >PowerDesigner

热点推荐