• 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

冯威 通过本文主要向大家介绍了vs2015如何使用c,如何使用c 6.0,如何使用visual c 6.0,visual c 如何使用,dev c 如何使用等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

PDF文档通常是不能编辑的,但有些时候需要在PDF文档中填写日期或签名之类,就需要在PDF有能编辑的文本域,本文介绍怎样用C#来实现这一功能。

环境

工具:VS2015

语言:C#

操作PDF类库:iTextSharp 5.5.10

生成的PDF预览的工具:Skim、福昕阅读器、Acrobat Reader

代码实现

获取文档的页数

PdfReader reader = new PdfReader(@"C:\WorkSpace\1.pdf");
int count = reader.NumberOfPages;
</div>

创建文本域

TextField fieldDate = new TextField(stamp.Writer, new iTextSharp.text.Rectangle(105, 100, 240, 125), "date");
fieldDate.BackgroundColor= BaseColor.WHITE;fieldDate.BorderWidth= 1;
fieldDate.BorderColor= BaseColor.BLACK;fieldDate.BorderStyle= 4;
fieldDate.FontSize = 11f;
</div>

iTextSharp.text.Rectangle(105, 100, 240, 125) 用来设置文本域的位置,四个参数分别为:llx、lly、urx、ury:

llx 为Left ,lly 为Bottom,urx 为Right,ury 为Top
其中:Width=Right - Left Heigth = Top - Bototom
创建文本

Chunk cname = new Chunk("Date:", FontFactory.GetFont("Futura", 16f,new BaseColor(170,64,0)));
Phrase pname = new Phrase(cname);
PdfContentByte over = stamp.GetOverContent(count);
ColumnText.ShowTextAligned(over, Element.ALIGN_CENTER, pname, 400, 420, 0);
</div>

完整代码

public static void AddTextField()
{
   PdfReader reader = new PdfReader(@"C:\WorkSpace\1.pdf");
      
   FileStream out1 = new FileStream(@"C:\WorkSpace\2.pdf", FileMode.Create, FileAccess.Write);

   PdfStamper stamp = new PdfStamper(reader, out1);
      //获得pdf总页数
   int count = reader.NumberOfPages;

   TextField fieldDate = new TextField(stamp.Writer, new iTextSharp.text.Rectangle(105, 100, 240, 125), "date");
   fieldDate.BackgroundColor = BaseColor.WHITE;
   fieldDate.BorderWidth = 1;
   fieldDate.BorderColor = BaseColor.BLACK;
   fieldDate.BorderStyle = 4;
   fieldDate.FontSize = 11f;

   TextField fieldSign = new TextField(stamp.Writer, new iTextSharp.text.Rectangle(430, 100, 530, 125), "sign");
   fieldSign.BackgroundColor = BaseColor.WHITE;
   fieldSign.BorderWidth = 1;
   fieldSign.BorderColor = BaseColor.BLACK;
   fieldSign.BorderStyle = 4;
   fieldSign.FontSize = 11f;

   Chunk cname = new Chunk("Date:", FontFactory.GetFont("Futura", 16f,new BaseColor(170,64,0)));
   Chunk ctitle = new Chunk("User Sign:", FontFactory.GetFont("Futura", 16f, new BaseColor(0, 128, 128)));
   Phrase pname = new Phrase(cname);
   Phrase ptitle = new Phrase(ctitle);

   //PdfContentBye类,用来设置图像和文本的绝对位置
   PdfContentByte over = stamp.GetOverContent(count);
   ColumnText.ShowTextAligned(over, Element.ALIGN_CENTER, pname, 400, 420, 0);
   ColumnText.ShowTextAligned(over, Element.ALIGN_CENTER, ptitle, 400, 350, 0);

   stamp.AddAnnotation(fieldDate.GetTextField(), count);
   stamp.AddAnnotation(fieldSign.GetTextField(), count);

   stamp.FormFlattening = true; 

   stamp.Close();
}
</div>

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

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

  • 如何使用C#在PDF文件添加图片印章
  • 如何使用C#程序给PDF文件添加编辑域
  • 如何使用C#从word文档中提取图片
  • 如何使用C#操作幻灯片
  • 如何使用C#读写锁ReaderWriterLockSlim

相关文章

  • 2017-05-28c#对象反序列化与对象序列化示例详解
  • 2017-05-28C#通过DataSet读写xml文件的方法
  • 2017-05-28WinForm中KeyDown,KeyPress和KeyUp的顺序与区别解析
  • 2017-05-28C#自定义字符串压缩和解压缩的方法
  • 2017-05-28C# 创建文本文件写入读取实现代码
  • 2017-05-28C#创建临时文件的方法
  • 2017-05-28c# winform取消右上角关闭按钮的实现方法
  • 2017-05-28C#图片处理3种高级应用
  • 2017-05-28C#: 引用变量与数值变量的区别
  • 2017-05-28C#获取图片的后缀名解析

文章分类

  • 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#中foreach语句深入研究
    • 解析如何使用反射调用类型成员 方法,字段,属性
    • C#使用系统方法发送异步邮件完整实例
    • C#获取数组中最大最小值的方法
    • 将ocx文件转换成C#程序引用的DLL文件的办法
    • C#中数组初始化与数组元素复制的方法
    • C#向PPT文档插入图片以及导出图片的实例
    • c#求范围内素数的示例分享(c#求素数)
    • 基于mvc5+ef6+Bootstrap框架实现身份验证和权限管理

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

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