c#实现的pdf生成图片文字水印类实例

  

本文实例讲述了c#实现的pdf生成图片文字水印类。分享给大家供大家参考,具体如下:

        公开课PDFSetWaterMark   {///& lt; summary>///创建一个显示指定图片的pdf///& lt;/summary>///& lt;参数name=" picPdfPath祝辞& lt;/param>///& lt;参数name=" picPath祝辞& lt;/param>///& lt; returns> & lt;/returns>   picPdfPath公共静态bool CreatePDFByPic(字符串,字符串picPath)   {//新建一个文档   文档doc=新文档();   试一试   {//建立一个书写器(作家)与文档对象关联   PdfWriter。GetInstance(医生,新文件流(picPdfPath FileMode。创建、FileAccess.ReadWrite));//打开一个文档   doc.Open ();//向文档中添加内容   图像img=Image.GetInstance (picPath);//img.SetAbsolutePosition ();   doc.Add (img);   返回true;   }   捕获(异常交货)   {   返回错误;   把交货;   }   最后   {   如果(doc !=null)   {   doc.Close ();   }   }   }///& lt; summary>///加图片水?//& lt;/summary>///& lt;参数name=" inputfilepath祝辞& lt;/param>///& lt;参数name=" outputfilepath祝辞& lt;/param>///& lt;参数name=" ModelPicName祝辞& lt;/param>///& lt;参数name=岸ゼ丁弊4? lt;/param>///& lt;参数name=白蟆弊4? lt;/param>///& lt; returns> & lt;/returns>   公共静态bool PDFWatermark (outputfilepath inputfilepath的字符串,字符串,字符串ModelPicName,浮子,浮子左)   {//把新NotImplementedException ();   PdfReader PdfReader=零;   PdfStamper PdfStamper=零;   试一试   {   pdfReader=new pdfReader (inputfilepath);   int numberOfPages=pdfReader.NumberOfPages;   iTextSharp.text。矩形psize=pdfReader.GetPageSize (1);   浮动宽度=psize.Width;   浮子高度=psize.Height;   pdfStamper=new pdfStamper (pdfReader,新文件流(outputfilepath FileMode.Create));   PdfContentByte waterMarkContent;   iTextSharp.text。图像图像=iTextSharp.text.Image.GetInstance (ModelPicName);   的形象。GrayFill=20;//透明度,灰色填充//image.Rotation//旋转//image.RotationDegrees//旋转角度//水印的位置   如果(左& lt;0)   {   左=宽/2 -形象。宽度+左;   }//图像。SetAbsolutePosition(左,(高度- image.Height)——上);   的形象。SetAbsolutePosition(左)(高/2 - image.Height) -上);//每一页加水印,也可以设置某一页加水印   for (int i=1;我& lt;=numberOfPages;我+ +)   {//waterMarkContent=pdfStamper.GetUnderContent (i);//内容下层加水印   waterMarkContent=pdfStamper.GetOverContent (i);//内容上层加水印   waterMarkContent.AddImage(图片);   }//strMsg=俺晒Α?   返回true;   }   捕获(异常交货)   {   把交货;   }   最后   {   如果(pdfStamper !=null)   pdfStamper.Close ();   如果(pdfReader !=null)   pdfReader.Close ();   }   }///& lt; summary>///添加普通偏转角度文字水?//& lt;/summary>///& lt;参数name=" inputfilepath祝辞& lt;/param>///& lt;参数name=" outputfilepath祝辞& lt;/param>///& lt;参数name=" waterMarkName祝辞& lt;/param>///& lt;参数name=靶砜伞弊4? lt;/param>   公共静态孔隙setWatermark (outputfilepath inputfilepath的字符串,字符串,字符串waterMarkName)   {   PdfReader PdfReader=零;   PdfStamper PdfStamper=零;   试一试   {   pdfReader=new pdfReader (inputfilepath);   pdfStamper=new pdfStamper (pdfReader,新文件流(outputfilepath FileMode.Create));   总=pdfReader int。NumberOfPages + 1;   iTextSharp.text。矩形psize=pdfReader.GetPageSize (1);   浮动宽度=psize.Width;   浮子高度=psize.Height;   PdfContentByte内容;   BaseFont字体=BaseFont.CreateFont (@“C: \ WINDOWS \ \ SIMFANG字体。TTF”, BaseFont。IDENTITY_H BaseFont.EMBEDDED);   PdfGState gs=new PdfGState ();   for (int i=1;我& lt;总;我+ +)   {   内容=pdfStamper.GetOverContent (i);//在内容上方加水?/内容=pdfStamper.GetUnderContent (i);//在内容下方加水?/透明度   gs。FillOpacity f=0.3;   content.SetGState (gs);//content.SetGrayFill(0.3度);//开始写入文本   content.BeginText ();   content.SetColorFill (BaseColor.LIGHT_GRAY);   内容。SetFontAndSize(字体,100);   内容。SetTextMatrix (0,0);   content.ShowTextAligned(元素。ALIGN_CENTER waterMarkName,宽/2 - 50岁,身高/2 - 50,55);//content.SetColorFill (BaseColor.BLACK);//内容。SetFontAndSize(字体、8);//content.ShowTextAligned(元素。ALIGN_CENTER waterMarkName 0, 0, 0);   content.EndText ();   }   }   捕获(异常交货)   {   把交货;   }   最后   {   如果(pdfStamper !=null)   pdfStamper.Close ();   如果(pdfReader !=null)   pdfReader.Close ();   }   }///& lt; summary>///添加倾斜水?//& lt;/summary>///& lt;参数name=" inputfilepath祝辞& lt;/param>///& lt;参数name=" outputfilepath祝辞& lt;/param>///& lt;参数name=" waterMarkName祝辞& lt;/param>///& lt;参数name=" userPassWord祝辞& lt;/param>///& lt;参数name=" ownerPassWord祝辞& lt;/param>///& lt;参数name=靶砜伞弊4? lt;/param>   公共静态孔隙setWatermark (waterMarkName outputfilepath inputfilepath的字符串,字符串,字符串,字符串userPassWord,字符串ownerPassWord, int许可)   {   PdfReader PdfReader=零;   PdfStamper PdfStamper=零;   试一试   {   pdfReader=new pdfReader (inputfilepath);   pdfStamper=new pdfStamper (pdfReader,新文件流(outputfilepath FileMode.Create));//设置密码//pdfStamper。SetEncryption(假,userPassWord, ownerPassWord许可);   总=pdfReader int。NumberOfPages + 1;   PdfContentByte内容;   BaseFont字体=BaseFont.CreateFont (@“C: \ WINDOWS \ \ SIMFANG字体。TTF”, BaseFont。IDENTITY_H BaseFont.EMBEDDED);   PdfGState gs=new PdfGState ();   gs。FillOpacity f=0.2;//透明度   int j=waterMarkName.Length;   字符c;   int上升=0;   for (int i=1;null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

c#实现的pdf生成图片文字水印类实例