C#实现的pdf生成图片文字水印类实例
本文实例讲述了C#实现的pdf生成图片文字水印类。分享给大家供大家参考,具体如下:
publicclassPDFSetWaterMark { //////创建一个显示指定图片的pdf /// ////// /// publicstaticboolCreatePDFByPic(stringpicPdfPath,stringpicPath) { //新建一个文档 Documentdoc=newDocument(); try { //建立一个书写器(Writer)与document对象关联 PdfWriter.GetInstance(doc,newFileStream(picPdfPath,FileMode.Create,FileAccess.ReadWrite)); //打开一个文档 doc.Open(); //向文档中添加内容 Imageimg=Image.GetInstance(picPath); //img.SetAbsolutePosition(); doc.Add(img); returntrue; } catch(Exceptionex) { returnfalse; throwex; } finally { if(doc!=null) { doc.Close(); } } } /// ///加图片水印 /// ////// /// /// /// /// publicstaticboolPDFWatermark(stringinputfilepath,stringoutputfilepath,stringModelPicName,floattop,floatleft) { //thrownewNotImplementedException(); PdfReaderpdfReader=null; PdfStamperpdfStamper=null; try { pdfReader=newPdfReader(inputfilepath); intnumberOfPages=pdfReader.NumberOfPages; iTextSharp.text.Rectanglepsize=pdfReader.GetPageSize(1); floatwidth=psize.Width; floatheight=psize.Height; pdfStamper=newPdfStamper(pdfReader,newFileStream(outputfilepath,FileMode.Create)); PdfContentBytewaterMarkContent; iTextSharp.text.Imageimage=iTextSharp.text.Image.GetInstance(ModelPicName); image.GrayFill=20;//透明度,灰色填充 //image.Rotation//旋转 //image.RotationDegrees//旋转角度 //水印的位置 if(left<0) { left=width/2-image.Width+left; } //image.SetAbsolutePosition(left,(height-image.Height)-top); image.SetAbsolutePosition(left,(height/2-image.Height)-top); //每一页加水印,也可以设置某一页加水印 for(inti=1;i<=numberOfPages;i++) { //waterMarkContent=pdfStamper.GetUnderContent(i);//内容下层加水印 waterMarkContent=pdfStamper.GetOverContent(i);//内容上层加水印 waterMarkContent.AddImage(image); } //strMsg="success"; returntrue; } catch(Exceptionex) { throwex; } finally { if(pdfStamper!=null) pdfStamper.Close(); if(pdfReader!=null) pdfReader.Close(); } } /// ///添加普通偏转角度文字水印 /// ////// /// /// publicstaticvoidsetWatermark(stringinputfilepath,stringoutputfilepath,stringwaterMarkName) { PdfReaderpdfReader=null; PdfStamperpdfStamper=null; try { pdfReader=newPdfReader(inputfilepath); pdfStamper=newPdfStamper(pdfReader,newFileStream(outputfilepath,FileMode.Create)); inttotal=pdfReader.NumberOfPages+1; iTextSharp.text.Rectanglepsize=pdfReader.GetPageSize(1); floatwidth=psize.Width; floatheight=psize.Height; PdfContentBytecontent; BaseFontfont=BaseFont.CreateFont(@"C:\WINDOWS\Fonts\SIMFANG.TTF",BaseFont.IDENTITY_H,BaseFont.EMBEDDED); PdfGStategs=newPdfGState(); for(inti=1;i ///添加倾斜水印 /// /// /// /// /// /// /// publicstaticvoidsetWatermark(stringinputfilepath,stringoutputfilepath,stringwaterMarkName,stringuserPassWord,stringownerPassWord,intpermission) { PdfReaderpdfReader=null; PdfStamperpdfStamper=null; try { pdfReader=newPdfReader(inputfilepath); pdfStamper=newPdfStamper(pdfReader,newFileStream(outputfilepath,FileMode.Create)); //设置密码 //pdfStamper.SetEncryption(false,userPassWord,ownerPassWord,permission); inttotal=pdfReader.NumberOfPages+1; PdfContentBytecontent; BaseFontfont=BaseFont.CreateFont(@"C:\WINDOWS\Fonts\SIMFANG.TTF",BaseFont.IDENTITY_H,BaseFont.EMBEDDED); PdfGStategs=newPdfGState(); gs.FillOpacity=0.2f;//透明度 intj=waterMarkName.Length; charc; intrise=0; for(inti=1;i =15) { content.SetTextMatrix(200,120); for(intk=0;k 更多关于C#相关内容感兴趣的读者可查看本站专题:《C#图片操作技巧汇总》、《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#面向对象程序设计入门教程》及《C#程序设计之线程使用技巧总结》
希望本文所述对大家C#程序设计有所帮助。