• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#代码实现PDF文档操作类

C#代码实现PDF文档操作类

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c站,c语言,欲情 c max,奔驰c200,85度c等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文纯干货,贴上PDF文档操作类C#代码,需要添加iTextSharp.dll引用才可以正常通过编译。

废话不多说了,直接给大家贴代码了。

代码如下:

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 构造函数
  /// <summary>
  /// 构造函数
  /// </summary>
  public PDFOperation()
  {
   rect = PageSize.A4;
   document = new Document(rect);
  }
  /// <summary>
  /// 构造函数
  /// </summary>
  /// <param name="type">页面大小(如"A4")</param>
  public PDFOperation(string type)
  {
   SetPageSize(type);
   document = new Document(rect);
  }
  /// <summary>
  /// 构造函数
  /// </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">段后空行数(0为默认值)</param>
  /// <param name="SpacingBefore">段前空行数(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
 }
}
</div>

友情提醒需要注意点:需要添加iTextSharp.dll引用才可以正常通过编译。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C# 检索不区分大小写并高亮显示实例详解
  • C#实现Base64处理的加密解密,编码解码示例
  • C# SqlHelper应用开发学习
  • C#多线程经典示例(吃苹果)
  • C#使用Windows Service的简单教程(创建、安装、卸载、调试)
  • C# 6.0 的知识梳理
  • C#向PPT文档插入图片以及导出图片的实例
  • C#使用Jquery zTree实现树状结构显示 异步数据加载
  • C#清理非托管对象实例分析
  • C#双缓冲技术实例详解

相关文章

  • 2017-05-28C#标识符的使用小结
  • 2017-05-28C#多线程编程中的锁系统(三)
  • 2017-05-28C#中隐式运行CMD命令行窗口的方法
  • 2017-05-28C#面向对象编程之猜拳游戏实现方法
  • 2017-05-28C#中事务处理和非事务处理方法实例分析
  • 2017-05-28浅析C#的复制和克隆
  • 2017-05-28C# 得到某一天的起始和截止时间的代码
  • 2017-05-28C#如何取硬件标志
  • 2017-05-28磁盘配额的wmi版本(C#)
  • 2017-05-28动态webservice调用接口并读取解析返回结果

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 详解C#的排列组合
    • C#使用Socket实现发送和接收图片的方法
    • C#形状原点变换的方法
    • C# 设置系统日期格式的方法
    • C#窗体编程(windows forms)禁止窗口最大化的方法
    • C#中调用VB中Inputbox类的实现方法
    • C#操作XML通用方法汇总
    • C#查询SqlServer数据库并返回单个值的方法
    • 基于C#的UDP协议的同步通信实现代码
    • C#判断指定分区是否是ntfs格式的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有