1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > itextpdf给pdf添加水印

itextpdf给pdf添加水印

时间:2018-12-11 10:17:15

相关推荐

itextpdf给pdf添加水印

第一步:添加依赖

<!--pdf 处理 --><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13</version></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version></dependency>

第二步:代码实现

public class testPdfWaterSmark {private static int interval = -5;public static void waterMark(InputStream inputStream, String outputFile, String waterMarkName){try{PdfReader reader = new PdfReader(inputStream);PdfStamper stamper = new PdfStamper(reader,new FileOutputStream(outputFile));BaseFont base = BaseFont.createFont("STSong-Light","UniGB-UCS2-H",BaseFont.EMBEDDED);Rectangle pageRect = null;PdfGState gs = new PdfGState();gs.setFillOpacity(0.3f);gs.setStrokeOpacity(0.4f);int total = reader.getNumberOfPages() + 1;JLabel label = new JLabel();FontMetrics metrics;int textH = 0;int textW = 0;label.setText(waterMarkName);metrics = label.getFontMetrics(label.getFont());textH = metrics.getHeight();textW = metrics.stringWidth(label.getText());PdfContentByte under;for (int i = 1; i < total; i++) {pageRect = reader.getPageSizeWithRotation(i);under = stamper.getOverContent(i);under.saveState();under.setGState(gs);under.beginText();under.setFontAndSize(base, 20);under.setRGBColorFill(145,145,145);// 水印文字成30度角倾斜//你可以随心所欲的改你自己想要的角度//下面2个循环设置一个页面水印的数量for (int height = interval + textH; height < pageRect.getHeight();height = height + textH*10) {for (int width = interval + textW; width < pageRect.getWidth() + textW;width = width + textW*3) {under.showTextAligned( Element.ALIGN_LEFT, waterMarkName, width - textW,height - textH, 30); //rotation 设置的是水印倾斜角度}}// 添加水印文字under.endText();}stamper.close();reader.close();}catch (Exception e) {// TODO: handle exceptione.printStackTrace();}}public static void main(String[] args) throws FileNotFoundException {InputStream inputStream = new FileInputStream( "F:\\result\\22.pdf" );waterMark(inputStream,"F:\\result\\33.pdf","我的水印");System.out.println("添加完成");}}

第三步:效果

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