最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c#添加圖片、文本水印到PDF文件

 更新時(shí)間:2020年06月02日 14:22:32   作者:EiceblueSpire  
這篇文章主要介紹了如何用c#給PDF文件添加文本、圖片水印,文中代碼非常詳細(xì)供大家學(xué)習(xí)參考,感興趣的朋友可以了解下

概述

一般我們?cè)谙蛭臋n添加水印時(shí),會(huì)分為直接添加文字水印和加載圖片添加圖片水印兩種情況。常見(jiàn)的,在添加文字水印時(shí)會(huì)多以聲明文檔版權(quán)、權(quán)威性的文字、標(biāo)語(yǔ)或者名稱(chēng)等;同樣的,圖片水印也通??梢允悄辰M織的LOGO、印章、或者其他能夠指示性的圖片等。在下面的文檔中,將介紹通過(guò)C#編程來(lái)添加PDF水印的方法,包括:

1 添加文本水印

2 添加圖片水印

使用工具

Spire.PDF for .NET

C#代碼示例(供參考)

【示例1】添加PDF文本水印

using Spire.Pdf;
using Spire.Pdf.Annotations;
using Spire.Pdf.Annotations.Appearance;
using Spire.Pdf.Graphics;
using System;
using System.Drawing;
namespace TextWatermark
 {  
  class Program  
  {    
     static void Main(string[] args)
     {
     //創(chuàng)建PdfDocument對(duì)象      
     PdfDocument pdf = new PdfDocument();
     //加載現(xiàn)有PDF文檔
     pdf.LoadFromFile("sample.pdf");       
     //創(chuàng)建True Type字體      
     PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("宋體", 20f), true);
     //水印文字      
     string text = "版權(quán)所有\(zhòng)n侵權(quán)必究";       
     //測(cè)量文字所占的位置大小,即高寬      
     SizeF fontSize = font.MeasureString(text);       
     //計(jì)算兩個(gè)偏移量      
     float offset1 = (float)(fontSize.Width * System.Math.Sqrt(2) / 4);      
     float offset2 = (float)(fontSize.Height * System.Math.Sqrt(2) / 4);
     //遍歷文檔每一頁(yè)      
     foreach (PdfPageBase page in pdf.Pages)      
     {        
       //創(chuàng)建PdfTilingBrush對(duì)象        
       PdfTilingBrush brush = new PdfTilingBrush(new SizeF(page.Canvas.Size.Width / 2, page.Canvas.Size.Height / 2));
       //設(shè)置畫(huà)刷透明度        
       brush.Graphics.SetTransparency(0.8f);         
       //將畫(huà)刷中坐標(biāo)系向右下平移        
       brush.Graphics.TranslateTransform(brush.Size.Width / 2 - offset1 - offset2, brush.Size.Height / 2 + offset1 - offset2);
       //將坐標(biāo)系逆時(shí)針旋轉(zhuǎn)45度        
       brush.Graphics.RotateTransform(-45);         
       //在畫(huà)刷上繪制文本        
       brush.Graphics.DrawString(text, font, PdfBrushes.DarkGray, 0, 0);         
       //在PDF頁(yè)面繪制跟頁(yè)面一樣大小的矩形,并使用定義的畫(huà)刷填充        
       page.Canvas.DrawRectangle(brush, new RectangleF(new PointF(0, 0), page.Canvas.Size));      
      }       
     //保存文檔      
     pdf.SaveToFile("output.pdf");      
     System.Diagnostics.Process.Start("output.pdf");         
    }  
   }
 }

完成代碼后,調(diào)試運(yùn)行程序,生成文檔,如下:

注:如果只想設(shè)置單頁(yè)的水印效果,只需獲取指定頁(yè),并添加水印效果即可。

【示例2】添加PDF圖片水印

using Spire.Pdf;
using System.Drawing; 
namespace ImageWaterMark
{  
 class Program
   {
    static void Main(string[] args)
      {
      //創(chuàng)建PdfDocument對(duì)象
      PdfDocument pdf = new PdfDocument();
      //加載現(xiàn)有PDF文檔      
      pdf.LoadFromFile("sample.pdf");       
      //加載圖片到System.Drawing.Image對(duì)象      
      Image image = Image.FromFile("logo.png");       
      //遍歷文檔每一頁(yè)      
      foreach (PdfPageBase page in pdf.Pages)      
      {        
       //設(shè)置背景圖的位置及大小        
       page.BackgroundRegion = new RectangleF((page.ActualSize.Width - 250) / 2, (page.ActualSize.Height - 250) / 2, 250, 250);        
       //設(shè)置背景圖        
       page.BackgroundImage = image;      
      }       
      //保存并打開(kāi)文檔      
      pdf.SaveToFile("output.pdf");      
      System.Diagnostics.Process.Start("output.pdf");    
    }  
   }
 }

測(cè)試結(jié)果:

以上是本次關(guān)于C#添加PDF水印的全部?jī)?nèi)容。

以上就是c#給PDF文件添加文本、圖片水印的方法的詳細(xì)內(nèi)容,更多關(guān)于C#給PDF文件添加水印的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • c#中string的特性介紹及注意事項(xiàng)小結(jié)

    c#中string的特性介紹及注意事項(xiàng)小結(jié)

    這篇文章主要給大家介紹了關(guān)于c#中string的特性介紹及注意事項(xiàng)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用c#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • c# 委托和事件實(shí)例學(xué)習(xí)

    c# 委托和事件實(shí)例學(xué)習(xí)

    今天把委托和事件研究了一個(gè),winForm環(huán)境下,一般的小例子都是字符界面,我為了運(yùn)用一下,寫(xiě)了winForm
    2009-01-01
  • C#微信開(kāi)發(fā)第一章

    C#微信開(kāi)發(fā)第一章

    這篇文章主要為大家詳細(xì)介紹了C#微信開(kāi)發(fā)第一章,很有參考價(jià)值和實(shí)用性,感興趣的小伙伴們可以參考一下
    2016-07-07
  • C#實(shí)現(xiàn)身份證實(shí)名認(rèn)證接口的示例代碼

    C#實(shí)現(xiàn)身份證實(shí)名認(rèn)證接口的示例代碼

    身份證實(shí)名認(rèn)證,即通過(guò)姓名和身份證號(hào)校驗(yàn)個(gè)人信息的匹配程度,廣泛應(yīng)用于金融、互聯(lián)網(wǎng)等多個(gè)領(lǐng)域,本文主要介紹了C#實(shí)現(xiàn)身份證實(shí)名認(rèn)證接口的示例代碼,感興趣的可以了解一下
    2024-09-09
  • C#通過(guò)正則表達(dá)式實(shí)現(xiàn)提取網(wǎng)頁(yè)中的圖片

    C#通過(guò)正則表達(dá)式實(shí)現(xiàn)提取網(wǎng)頁(yè)中的圖片

    本文給大家分享的是使用C#通過(guò)正則表達(dá)式來(lái)實(shí)現(xiàn)提取網(wǎng)頁(yè)中的圖片的代碼,十分的方便,有需要的小伙伴可以參考下。
    2015-12-12
  • C#表達(dá)式樹(shù)基礎(chǔ)教程

    C#表達(dá)式樹(shù)基礎(chǔ)教程

    這篇文章介紹了C#表達(dá)式樹(shù)的基礎(chǔ)教程,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01
  • 比Math類(lèi)庫(kù)abs()方法性能更高的取絕對(duì)值方法介紹

    比Math類(lèi)庫(kù)abs()方法性能更高的取絕對(duì)值方法介紹

    這篇文章主要給大家介紹了一種比Math類(lèi)庫(kù)abs()方法性能更高的取絕對(duì)值方法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • HttpWebRequest出錯(cuò).Section=ResponseHeader Detail=CR

    HttpWebRequest出錯(cuò).Section=ResponseHeader Detail=CR

    HttpWebRequest出錯(cuò).Section=ResponseHeader Detail=CR...
    2007-03-03
  • C#動(dòng)態(tài)生成DropDownList執(zhí)行失敗原因分析

    C#動(dòng)態(tài)生成DropDownList執(zhí)行失敗原因分析

    這篇文章主要介紹了C#動(dòng)態(tài)生成DropDownList執(zhí)行失敗原因分析,以一個(gè)實(shí)例形式分析了C#動(dòng)態(tài)生成DropDownList的相關(guān)注意要點(diǎn)與使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • C#中使用ArrayPool和MemoryPool實(shí)例

    C#中使用ArrayPool和MemoryPool實(shí)例

    對(duì)資源的可復(fù)用是提升應(yīng)用程序性能的一個(gè)非常重要的手段,比如本篇要分享的 ArrayPool 和 MemoryPool,它們就有效的減少了內(nèi)存使用和對(duì)GC的壓力,從而提升應(yīng)用程序性能。感興趣的可以了解一下
    2021-05-05

最新評(píng)論

宜章县| 沅陵县| 孟州市| 社旗县| 岳普湖县| 新余市| 裕民县| 富锦市| 茂名市| 白银市| 庐江县| 瑞昌市| 涟源市| 黄石市| 宜宾县| 灵川县| 白城市| 卢氏县| 宣武区| 海宁市| 周宁县| 古田县| 凤山市| 车险| 额尔古纳市| 仁化县| 云梦县| 鄂尔多斯市| 玛多县| 尼木县| 秭归县| 彭水| 汉阴县| 南漳县| 杂多县| 绥滨县| 盐山县| 达孜县| 通州市| 雅安市| 罗甸县|