【C#功能实现】c#程序为PDF文件填写表单内容

原文:http://www.coderblog.in/2011/10/fill-the-pdf-form-with-csharp.html

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

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

我们先来解决第一个问题吧,其实这个问题还是比较好解决的,只需使用一个第三方的插件即可完成,而且是开源免费的,功能很强大,非常适合填写PDF表单的需求,此插件就是 iTextSharp,也许有朋友也已用过了,具体使用方法下面再介绍 :smile:

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

在此我介绍大家一个不错的方法,先说说整体思路吧。试想想,如果我们可以将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文件内容,在左上角有很多控件可以使用,大家可自己试试,以下是我创建的内容:
PDF内容

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

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

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

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

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

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

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

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

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

最后给出 iTextSharp 的下载地址:

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您可以使用C#的iTextSharp库结合Vue.js和ASP.NET的身份验证来实现认证的Vue表单生成PDF文件功能。以下是一个简单的示例代码: ```c# using iTextSharp.text; using iTextSharp.text.pdf; using System.IO; using System.Web; using System.Web.Mvc; using System.Web.UI; using System.Web.UI.WebControls; public class PdfController : Controller { [Authorize] // 添加身份验证特性 public ActionResult ConvertToPdf() { // 获取Vue.js生成的HTML代码 string vueHtml = GetVueHtml(); // 将HTML代码转换为PDF MemoryStream ms = new MemoryStream(); TextReader reader = new StringReader(vueHtml); Document document = new Document(PageSize.A4, 30, 30, 30, 30); PdfWriter writer = PdfWriter.GetInstance(document, ms); HTMLWorker worker = new HTMLWorker(document); document.Open(); worker.StartDocument(); worker.Parse(reader); worker.EndDocument(); worker.Close(); document.Close(); // 返回PDF文件 return File(ms.ToArray(), "application/pdf", "vue.pdf"); } private string GetVueHtml() { // 使用Vue.js生成带有表单的HTML代码 // 这里简单模拟一下 return "<html><head><title>Vue PDF</title></head><body><div id='app'><form><input type='text' name='name' placeholder='Name' required><input type='email' name='email' placeholder='Email' required><button type='submit'>Submit</button></form></div></body></html>"; } } ``` 需要注意的是,身份验证的实现需要根据具体的业务逻辑进行,可以使用ASP.NET的内置身份验证机制或第三方认证库。此外,iTextSharp库需要单独安装。可以使用NuGet包管理器来安装iTextSharp。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值