• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

c#程序为PDF文件填写表单内容

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

众所周知,PDF文件一般情况下是无法修改的,如果你有一张现成的PDF表格,这时想通过编程实现从数据库或者动态生成内容去填写这张表格,就会有些问题了,首先我们要解决以下2个重要的问题:

1.如何将内容写到现有的PDF文件里?
2.如何能将内容准确地填写到指定的表格框里?

现在第二个问题是比较麻烦的,以前我们想到的笨方法是使用坐标来填写,虽然勉强可达到效果,但大家也知道这种做法是非常痛苦的,而且效果很不好,很难可以精确对齐到某个位置去填写内容的。

在此我介绍大家一个不错的方法,先说说整体思路吧。试想想,如果我们可以将PDF里的表格框当作是HTML里的字段(field)来获取和填写,这样不就可以完美解决以上问题了?通过 iTextSharp 是可以为PDF里的字段域进行填充的,但要如何为PDF添加相应的字段呢?如果使用专业的Adobe PDF软件是可以完成此操作的,但问题是这些专业软件都不是免费的,而合价格还不低,当然对于一般开发者来说不太值得使用啦!

这里推荐一个功能超强的在线PDF处理网站,之所以说其超强,是因为不单可直接在线创建PDF,填写内容,而且还可以任意地方添加PDF字段域,并为字段设置ID名称等,同时这些字段还支丰富控件域,如:TextBox,RadioButton,CheckBox,DorpDown,ListBox 等,就像HTML里的一样,这些已可以满足所有PDF字段的需求了!

OK,现在就看看其如何强大吧,首先登录 http://www.PDFescape.com,如果你第一次使用,就先注册一个账号,步骤很简单,只要输入email和密码就可以了。登录进去后会看到几个选项,是上传一张现有的PDF还是创建新的文件,在此我就直接创建新文件以做测试吧:

使用此网站,可以非常方便地创建PDF文件内容,在左上角有很多控件可以使用,大家可自己试试,以下是我创建的内容:

其中绿色的就是添加的字段,使用左上角的控件工具可以直接添加多种控制,以下是添加控件时的对话框:

不同的控件还可以设置其相关属性,只需鼠标右击此控件即可:

如果要添加单选框分组,就必须将这些单选框控件设置为一样的名称,这样就自动成为一组,每次点击只会选择到一个了:

当然你还可以选择不同的样式哦,这个就大家自己尝试好了,呵呵  。另外请注意在上面控件属性设置里,有一项 Export Value,这个就是此控件的默认值,之后我们在程序里获取判断就要根据这个值了,在此你可以任意设置的。

OK,现在已完成了PDF文件的制作,以下是最终成品,里面的单选和下划线全部可在左边工具栏里生成的:

这时再点击左边下载并保存的按钮,就是一样绿色的里面有箭头的,在保存按钮下面,这时就可生成一个完整的PDF文件,大家再看看此文件的效果吧:

看到了吧,之前添加的字段现在已可以直接在PDF里填写了,而且也可以保存填写后的内容哦,现在接下来的事情就好办了吧 :tongue:

有了字段的PDF文件,我们只需将此文件做为一个模板,再从数据库里获取数据对其填写就可以了,就像填写一张普通的HTML表单一样简单哦!现在就使用 iTextSharp 进行相关的操作吧:

 
  
//获取PDF模板文件
string templateFile = Path.Combine(Server.MapPath(@"~\pdftemplate\"), "coderblog.pdf");
//输出生成的PDF文件
string tempPDF = Path.Combine(Server.MapPath(@"~\output\"), Guid.NewGuid().ToString() + ".pdf");
 
//创建 PdfReader
PdfReader reader = new PdfReader(templateFile);
FileStream fFileStream = new FileStream(tempPDF, FileMode.Create);
 
//进行PDF字段操作
PdfStamper stamper = new PdfStamper(reader, fFileStream);
AcroFields coderBlogForm = stamper.AcroFields;
//填充PDF里的字段内容
coderBlogForm.SetField("URL", "http://www.coderblog.in");
coderBlogForm.SetField("Name", "代码部落");
coderBlogForm.SetField("Option", "Yes");

 

 

经过以上处理后,在你网站根目录的output目录下,就会生成一个填充好表单内容的PDF文件了。使用此方法可以很方便地解决PDF表单填写的问题 

最后给出 iTextSharp 的下载地址:

http://sourceforge.net/projects/iTextSharp/


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#中的IO流操作(FileStream)发布时间:2022-07-13
下一篇:
C#知识点-反射发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap