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

C#利用iTextSharp添加PDF水印

 更新時間:2017年03月24日 11:37:57   作者:IT-民工  
這篇文章主要為大家詳細介紹了C#利用iTextSharp添加PDF水印的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了使用的是iTextSharp添加PDF水印的具體代碼,供大家參考,具體內(nèi)容如下

需要iTextSharp.dll, 下載地址http://sourceforge.net/projects/itextsharp/

public void Test()
    {
      Watermark(@"E:\日常工作\12084347 config.pdf", @"E:\日常工作\12084347 config wm.pdf", @"E:\日常工作\wm.png");
}    
 public bool AddWatermark(string inputPath, string outputPath, string watermarkPath, ref string error)
    {
      try
      {
        PdfReader pdfReader = new PdfReader(inputPath);
        int numberOfPages = pdfReader.NumberOfPages;
        FileStream outputStream = new FileStream(outputPath, FileMode.Create);
        PdfStamper pdfStamper = new PdfStamper(pdfReader, outputStream);
        PdfContentByte waterMarkContent;

        iTextSharp.text.Image image = null;
        if (string.IsNullOrEmpty(watermarkPath))
        {
          Stream s = GetType().Assembly.GetManifestResourceStream("WatermarkTool.wm.png");
          image = iTextSharp.text.Image.GetInstance(s);
        }
        else
        {
          image = iTextSharp.text.Image.GetInstance(watermarkPath);
        }        
        image.SetAbsolutePosition(100, 100);
        for (int i = 1; i <= numberOfPages; i++)
        {
          waterMarkContent = pdfStamper.GetUnderContent(i);
          waterMarkContent.AddImage(image);
        }
        pdfStamper.Close();
        pdfReader.Close();
        outputStream.Close();
        return true;
      }
      catch (Exception ex)
      {
        error = ex.StackTrace;
        return false;
      }
    }

 //選擇文件夾
    private void textBox2_DoubleClick(object sender, EventArgs e)
    {
      FolderBrowserDialog dialog = new FolderBrowserDialog();
      dialog.Description = label2.Text;
      if (dialog.ShowDialog() == DialogResult.OK)
      {
        textBox2.Text = dialog.SelectedPath;
      }
    }

    //選擇文件
    private void textBox3_DoubleClick(object sender, EventArgs e)
    {
      OpenFileDialog fileDialog = new OpenFileDialog();
      fileDialog.Multiselect = true;
      fileDialog.Title = label3.Text;
      fileDialog.Filter = "*.jpg|*.jpg|*.jpeg|*.jpeg|*.bmp|*.bmp|*.gif|*.gif|*.png|*.png|*.Tiff|*.Tiff|*.Wmf|*.Wmf";
      if (fileDialog.ShowDialog() == DialogResult.OK)
      {
        textBox3.Text = fileDialog.FileName;
      }
    }

 //啟動線程
    private void button1_Click(object sender, EventArgs e)
    {
      if (Directory.Exists(textBox1.Text) == false )
      {
        MessageBox.Show(label1.Text, "Require input", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        textBox1.Focus();
        return;
      }
      if (Directory.Exists(textBox2.Text) == false)
      {
        MessageBox.Show(label2.Text, "Require input", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        textBox2.Focus();
        return;
      }
      if ( textBox3.Enabled && File.Exists(textBox3.Text) == false)
      {
        MessageBox.Show(label3.Text, "Require input", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        textBox3.Focus();
        return;
      }

      richTextBox1.Clear();
      button1.Enabled = false;
      Thread thread = new Thread(new ThreadStart(this.BatchDo));

      thread.IsBackground = true;
      thread.Start(); 
    }

 public delegate void SetControlValue(string message);
    //在線程中修改控件屬性
    public void AppendRTBText(string text)
    {
      if (richTextBox1.InvokeRequired)
      {
        SetControlValue cal = delegate(string s) { richTextBox1.AppendText(s); };
        this.Invoke(cal, text);
      }
      else
      {
        richTextBox1.AppendText(text);
      }
    }

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 在Winform程序中使用Spire.Pdf實現(xiàn)頁面添加印章功能的實現(xiàn)

    在Winform程序中使用Spire.Pdf實現(xiàn)頁面添加印章功能的實現(xiàn)

    這篇文章主要介紹了在Winform程序中使用Spire.Pdf實現(xiàn)頁面添加印章功能的實現(xiàn),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • C#中TextBox的橫線樣式及占位提示詳解

    C#中TextBox的橫線樣式及占位提示詳解

    橫線樣式就是將TextBox以一條底橫線的形式展示在頁面,占位提示就是Web的Placeholder屬性,即在輸入框沒有內(nèi)容的時候進行一個輸入提示。本文主要介紹了C#中TextBox的這兩個的實現(xiàn),需要的可以參考一下
    2022-11-11
  • C#多線程學習之(四)使用線程池進行多線程的自動管理

    C#多線程學習之(四)使用線程池進行多線程的自動管理

    這篇文章主要介紹了C#多線程學習之使用線程池進行多線程的自動管理,實例分析了C#中線程池的概念與相關的使用技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • C#格式化json字符串的方法分析

    C#格式化json字符串的方法分析

    這篇文章主要介紹了C#格式化json字符串的方法,結合實例形式分析了C#針對json字符串格式化的原理、步驟與具體實現(xiàn)技巧,需要的朋友可以參考下
    2017-06-06
  • C#數(shù)據(jù)適配器DataAdapter

    C#數(shù)據(jù)適配器DataAdapter

    這篇文章介紹了C#中的數(shù)據(jù)適配器DataAdapter,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#操作NPOI實現(xiàn)Excel數(shù)據(jù)導入導出

    C#操作NPOI實現(xiàn)Excel數(shù)據(jù)導入導出

    這篇文章主要為大家詳細介紹了C#如何操作NPOI實現(xiàn)Excel數(shù)據(jù)導入導出功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-02-02
  • WPF+SkiaSharp實現(xiàn)自繪彈幕效果

    WPF+SkiaSharp實現(xiàn)自繪彈幕效果

    這篇文章主要為大家詳細介紹了如何利用WPF和SkiaSharp實現(xiàn)自制彈幕效果,文中的示例代碼講解詳細,對我們學習或工作有一定幫助,感興趣的小伙伴可以了解一下
    2022-09-09
  • 深入淺析C#中的var和dynamic

    深入淺析C#中的var和dynamic

    這篇文章給大家介紹了C#中的var和dynamic的相關知識,var和dynamic的本質區(qū)別是類型判斷的時間不同,前者是編譯時,后者是運行時。具體內(nèi)容詳情大家通過本文學習下吧
    2018-05-05
  • C# Split函數(shù)根據(jù)特定分隔符分割字符串的操作

    C# Split函數(shù)根據(jù)特定分隔符分割字符串的操作

    這篇文章主要介紹了C# Split函數(shù)根據(jù)特定分隔符分割字符串的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • C#實現(xiàn)搶紅包算法的示例代碼

    C#實現(xiàn)搶紅包算法的示例代碼

    很多商家都會使用紅包進行促銷,那么你知道紅包算法是怎么實現(xiàn)的嗎,本文主要介紹了C#實現(xiàn)搶紅包算法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評論

盐山县| 于都县| 曲阳县| 乌兰察布市| 钦州市| 海丰县| 城口县| 沂南县| 普兰店市| 如皋市| 阿拉善左旗| 凌海市| 图片| 奇台县| 彭州市| 扶余县| 三穗县| 祥云县| 北宁市| 资中县| 神木县| 盈江县| 土默特右旗| 自治县| 阿拉善右旗| 鹤庆县| 正定县| 屏南县| 沙坪坝区| 乌海市| 乐清市| 恩施市| 蒲城县| 吴桥县| 建湖县| 来宾市| 仁布县| 印江| 庐江县| 兴海县| 怀安县|