`
zendj
  • 浏览: 115853 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

利用iTextSharp填写中文(中日韩)PDF表单(完整解决方案)

阅读更多
利用iTextSharp填写中文(中日韩)PDF表单(完整解决方案)

越来越多的人来信或者留言(甚至msn上找我),询问关于PDF Form填写的问题,尤其是中文(或者说中日韩文)表单填写的问题,本不想回答这类问题,因为相关的注意事项都已经在我的博客里说了,但现在看来还是有必要再啰唆下了,如果再有问题的话,希望带着Money来问,拜托了。

下面这段代码根据iText的java教程修改而成,主要有一下用途:
1.填写表单;
2.利用CID字体填写中文(CJK:中日韩)表单;
3.利用TrueType字体填写中日韩表单(因为字体嵌入,生成的PDF会非常大);
4.支持服务端PDF的填写;

<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->1//如果不使用CID字体,下面三行不需要
2BaseFont.AddToResourceSearch("iTextAsian-1.0.dll");
3BaseFont.AddToResourceSearch("iTextAsianCmaps-1.0.dll");
4BaseFontfont=BaseFont.CreateFont("STSong-Light","UniGB-UCS2-H",BaseFont.EMBEDDED);
5
6PdfReaderreader=newPdfReader("SimpleRegistrationForm.pdf");
7
8PdfStamperstamp1=newPdfStamper(reader,newFileStream("registered.pdf",FileMode.Create));
9
10//如果你想在asp.net中进行表单填写,下面这句非常重要,当然上面的FileStream也最好换成MemStream或者别的Stream实例
11//stamp1.Writer.CloseStream=false;
12
13
14//使用TrueType字体
15//BaseFontfont=BaseFont.CreateFont("c:\\windows\\fonts\\STSONG.TTF",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
16
17AcroFieldsform1=stamp1.AcroFields;
18
19//当你需要修改某个Field的字体属性时
20form1.SetFieldProperty("name","textfont",font,null);
21
22//以下为填写表单部分
23form1.SetField("name","利用iText#填写中文表单");
24form1.SetField("address","http://hardrock.cnblogs.com");
25form1.SetField("postal_code","200051");
26form1.SetField("email","rocsky@gmail.com");
27stamp1.Close();

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics