如何使用C#程序给PDF文件添加编辑域
2017-01-06 08:38
851 查看
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;
创建文本域
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;
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);
完整代码
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(); }
您可能感兴趣的文章:
相关文章推荐
- 如何使用C#在PDF文件添加图片印章
- 如何使用PDF编辑软件在PDF文件中添加背景图片
- C#如何在PDF文件添加图片印章
- C# 程序中如何向(DEV)ComboBoxEdit控件中添加下拉列表的值不使用数据绑定,就是使用代码添加
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
- ADO.NET .net core2.0添加json文件并转化成类注入控制器使用 简单了解 iTextSharp实现HTML to PDF ASP.NET MVC 中 Autofac依赖注入DI 控制反转IOC 了解一下 C# AutoMapper 了解一下
- PDF文件如何进行编辑、使用什么PDF编辑器好?
- 开发人员在使用Aspose.Pdf for .NET时如何用C#和VB两种代码添加附件到PDF文档?
- 如何在程序中打开PDF文件 -C#文章(.net)
- C# 如何判断指定文件是否正被其它程序使用
- 怎样编辑pdf文件?手把手教你如何使用PDF编辑器
- 如何自动为C#程序文件添加版权信息注释
- C# 如何判断指定文件是否正被其它程序使用
- 如何使用轻快PDF阅读器编辑PDF文件
- PDF编辑如何给pdf文件添加高亮
- PDF文件怎么添加图片 如何编辑PDF图片
- How to Insert OLE Object (Adobe Acrobat Document) in Word with C#(如何使用C#在Word中插入OLE对象-PDF文件)
- 程序中如何删除MO中当前正在使用的SHP文件(C#,MO2.4)
- 如何用C#开发的程序,打开关联文本文件,并且读取文件
- C# 如何编辑文件的摘要信息