国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#使用iTextSharp封裝的PDF文件操作類實例

2020-01-24 02:05:35
字體:
來源:轉載
供稿:網(wǎng)友

本文實例講述了C#使用iTextSharp封裝的PDF文件操作類。分享給大家供大家參考。具體分析如下:

這個C#代碼主要講iTextSharp中用于操作PDF文件的方法進行了再次封裝,可以更加方便的訪問PDF文檔,可以動態(tài)生成PDF文件、添加內容、設置段落、設置字體等。

using System.IO;using iTextSharp.text;using iTextSharp.text.pdf;namespace DotNet.Utilities{  /// <summary>  /// PDF文檔操作類  /// </summary>  //------------------調用--------------------------  //PDFOperation pdf = new PDFOperation();  //pdf.Open(new FileStream(path, FileMode.Create));  //pdf.SetBaseFont(@"C:/Windows/Fonts/SIMHEI.TTF");  //pdf.AddParagraph("測試文檔(生成時間:" + DateTime.Now + ")", 15, 1, 20, 0, 0);  //pdf.Close();  //-------------------------------  public class PDFOperation  {    #region 構造函數(shù)    /// <summary>    /// 構造函數(shù)    /// </summary>    public PDFOperation()    {      rect = PageSize.A4;      document = new Document(rect);    }    /// <summary>    /// 構造函數(shù)    /// </summary>    /// <param name="type">頁面大小(如"A4")</param>    public PDFOperation(string type)    {      SetPageSize(type);      document = new Document(rect);    }    /// <summary>    /// 構造函數(shù)    /// </summary>    /// <param name="type">頁面大小(如"A4")</param>    /// <param name="marginLeft">內容距左邊框距離</param>    /// <param name="marginRight">內容距右邊框距離</param>    /// <param name="marginTop">內容距上邊框距離</param>    /// <param name="marginBottom">內容距下邊框距離</param>    public PDFOperation(string type, float marginLeft, float marginRight, float marginTop, float marginBottom)    {      SetPageSize(type);      document = new Document(rect, marginLeft, marginRight, marginTop, marginBottom);    }    #endregion    #region 私有字段    private Font font;    private Rectangle rect;  //文檔大小    private Document document;//文檔對象    private BaseFont basefont;//字體    #endregion    #region 設置字體    /// <summary>    /// 設置字體    /// </summary>    public void SetBaseFont(string path)    {      basefont = BaseFont.CreateFont(path, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);    }    /// <summary>    /// 設置字體    /// </summary>    /// <param name="size">字體大小</param>    public void SetFont(float size)    {      font = new Font(basefont, size);    }    #endregion    #region 設置頁面大小    /// <summary>    /// 設置頁面大小    /// </summary>    /// <param name="type">頁面大小(如"A4")</param>    public void SetPageSize(string type)    {      switch (type.Trim())      {        case "A4":          rect = PageSize.A4;          break;        case "A8":          rect = PageSize.A8;          break;      }    }    #endregion    #region 實例化文檔    /// <summary>    /// 實例化文檔    /// </summary>    /// <param name="os">文檔相關信息(如路徑,打開方式等)</param>    public void GetInstance(Stream os)    {      PdfWriter.GetInstance(document, os);    }    #endregion    #region 打開文檔對象    /// <summary>    /// 打開文檔對象    /// </summary>    /// <param name="os">文檔相關信息(如路徑,打開方式等)</param>    public void Open(Stream os)    {      GetInstance(os);      document.Open();    }    #endregion    #region 關閉打開的文檔    /// <summary>    /// 關閉打開的文檔    /// </summary>    public void Close()    {      document.Close();    }    #endregion    #region 添加段落    /// <summary>    /// 添加段落    /// </summary>    /// <param name="content">內容</param>    /// <param name="fontsize">字體大小</param>    public void AddParagraph(string content, float fontsize)    {      SetFont(fontsize);      Paragraph pra = new Paragraph(content, font);      document.Add(pra);    }    /// <summary>    /// 添加段落    /// </summary>    /// <param name="content">內容</param>    /// <param name="fontsize">字體大小</param>    /// <param name="Alignment">對齊方式(1為居中,0為居左,2為居右)</param>    /// <param name="SpacingAfter">段后空行數(shù)(0為默認值)</param>    /// <param name="SpacingBefore">段前空行數(shù)(0為默認值)</param>    /// <param name="MultipliedLeading">行間距(0為默認值)</param>    public void AddParagraph(string content, float fontsize, int Alignment, float SpacingAfter, float SpacingBefore, float MultipliedLeading)    {      SetFont(fontsize);      Paragraph pra = new Paragraph(content, font);      pra.Alignment = Alignment;      if (SpacingAfter != 0)      {        pra.SpacingAfter = SpacingAfter;      }      if (SpacingBefore != 0)      {        pra.SpacingBefore = SpacingBefore;      }      if (MultipliedLeading != 0)      {        pra.MultipliedLeading = MultipliedLeading;      }      document.Add(pra);    }    #endregion    #region 添加圖片    /// <summary>    /// 添加圖片    /// </summary>    /// <param name="path">圖片路徑</param>    /// <param name="Alignment">對齊方式(1為居中,0為居左,2為居右)</param>    /// <param name="newWidth">圖片寬(0為默認值,如果寬度大于頁寬將按比率縮放)</param>    /// <param name="newHeight">圖片高</param>    public void AddImage(string path, int Alignment, float newWidth, float newHeight)    {      Image img = Image.GetInstance(path);      img.Alignment = Alignment;      if (newWidth != 0)      {        img.ScaleAbsolute(newWidth, newHeight);      }      else      {        if (img.Width > PageSize.A4.Width)        {          img.ScaleAbsolute(rect.Width, img.Width * img.Height / rect.Height);        }      }      document.Add(img);    }    #endregion    #region 添加鏈接、點    /// <summary>    /// 添加鏈接    /// </summary>    /// <param name="Content">鏈接文字</param>    /// <param name="FontSize">字體大小</param>    /// <param name="Reference">鏈接地址</param>    public void AddAnchorReference(string Content, float FontSize, string Reference)    {      SetFont(FontSize);      Anchor auc = new Anchor(Content, font);      auc.Reference = Reference;      document.Add(auc);    }    /// <summary>    /// 添加鏈接點    /// </summary>    /// <param name="Content">鏈接文字</param>    /// <param name="FontSize">字體大小</param>    /// <param name="Name">鏈接點名</param>    public void AddAnchorName(string Content, float FontSize, string Name)    {      SetFont(FontSize);      Anchor auc = new Anchor(Content, font);      auc.Name = Name;      document.Add(auc);    }    #endregion  }}

希望本文所述對大家的C#程序設計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 桃园市| 茌平县| 玉林市| 沙湾县| 巴彦淖尔市| 柳河县| 芒康县| 淅川县| 高碑店市| 都兰县| 南召县| 皮山县| 宁乡县| 鲜城| 富裕县| 岱山县| 泉州市| 宁明县| 博罗县| 临猗县| 盈江县| 罗甸县| 永吉县| 福泉市| 东城区| 达尔| 长垣县| 武义县| 响水县| 靖边县| 兴海县| 博湖县| 开平市| 娄烦县| 昭觉县| 庆云县| 博罗县| 明溪县| 泰宁县| 柳州市| 旌德县|