首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用unicode字符填写pdf表单

用unicode字符填写pdf表单
EN

Stack Overflow用户
提问于 2013-08-25 20:46:10
回答 1查看 6.9K关注 0票数 6

我试图用c#将一些unicode字符(阿拉伯语)插入到PDF表单中,我使用了iTextSharp库,但是当我插入字符并在PDF文件中保存字符时,在双击应该出现的切划机位置之前,unicode字符不会显示。

代码语言:javascript
复制
string pdfTemplate = @"c:\po.pdf";
string newFile = @"g:\test\completed_fw4.pdf";
PdfReader pdfReader = new PdfReader(pdfTemplate);
PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(newFile, FileMode.Create));
AcroFields pdfFormFields = pdfStamper.AcroFields;
pdfFormFields.SetField("position", TextBox1.Text);
pdfStamper.FormFlattening = false;
// close the pdf
pdfStamper.Close(); 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-26 13:27:23

有几种方法可以解决这个问题,但最终您需要指定能够呈现Unicode内容的字体。

首先,创建指向Unicode字体的BaseFont对象,下面使用Arial:

代码语言:javascript
复制
var arialFontPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts), "ARIALUNI.TTF");
var arialBaseFont = BaseFont.CreateFont(arialFontPath, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);

然后,可以在每个字段上分别设置字体属性:

代码语言:javascript
复制
pdfFormFields.SetFieldProperty("position", "textfont", arialBaseFont, null);

或者您可以添加一个文档范围的替换字体:

代码语言:javascript
复制
pdfFormFields.AddSubstitutionFont(arialBaseFont);
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18433532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档