iTextSharp5.2以后版本的字体如何添加?

bookoffbookoff 2013-08-22 12:03:45
大家好,iTextSharp5.2之前的版本添加非本机字体的时候只需要
BaseFont.AddToResourceSearch("iTextAsian.dll");
版本升级以后就不太知道怎么办了,英文不好资料找起来也比较困难
直接求教各位了
还望赐教
以上
...全文
571 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
w_angfei 2014-01-03
  • 打赏
  • 举报
回复
引用 5 楼 jshi123 的回复:
加上: stamper.AcroFields.AddSubstitutionFont(baseFont);
对了,我安装的Adobe Reader 是英文版的,希望你能给我指导下,谢谢了
w_angfei 2014-01-03
  • 打赏
  • 举报
回复
引用 5 楼 jshi123 的回复:
加上:
stamper.AcroFields.AddSubstitutionFont(baseFont);
你好,我在使用itextsharp给pdf加水印的时候遇到了一点问题
iTextSharp.text.io.StreamUtil.AddToResourceSearch(Assembly.Load("iTextAsian"));         
BaseFont bf = BaseFont.CreateFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
我把字体设置成这样,但是水印添加完后,我用Adobe Reader XI打开后,不能正确的显示出添加的中文字体,必须安装相应的扩展字体库文件。我想知道怎样设置字体格式,就可以使用Adobe Reader 自带的字体库,而不用再安装扩展字体库。
这个是没安装扩展字体库之前的PDF文件字体属性

这个是安装扩展字体库属性后的PDF文件字体属性
jshi123 2013-08-23
  • 打赏
  • 举报
回复
加上: stamper.AcroFields.AddSubstitutionFont(baseFont);
bookoffbookoff 2013-08-23
  • 打赏
  • 举报
回复
不好意思  form.SetFieldProperty("CB_1", "textfont", bf, null);中的bf和 BaseFont baseFont 中的baseFont 是同一个,复制错误
bookoffbookoff 2013-08-23
  • 打赏
  • 举报
回复
to:jshi123 非常感谢您的回复 按照您的步骤实行完毕,没有问题。 还想追加问一下,这种方式在PDF中写入内容时可以正确显示中文 当使用PDF表单,进行填表操作的时候没有办法显示,是不是我写的步骤有问题? 还望帮忙确认,谢谢 reader = new PdfReader(sFmtPath); PdfStamper stamp = new PdfStamper(reader, new FileStream(OutputPdfName, FileMode.Create)); AcroFields form = stamper.AcroFields; iTextSharp.text.io.StreamUtil.AddToResourceSearch(Assembly.Load("iTextAsian")); BaseFont baseFont = BaseFont.CreateFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); form.SetFieldProperty("CB_1", "textfont", bf, null); form.SetField("CB_1", "中国大连"); 其实我的主要目地是希望填写完的表单文件大小不要变化太大, 现在如果我是用Windows自带字体的话,模版150KB,填写一点内容的话,就会变成4M左右 (NOT_EMBEDDED我也设置了,但是大小没有变化。。。) 显示的时候就会需要比较长的时间。然后就想转成iTextSharp自带字体,结果自己还搞不定 还望帮助
jshi123 2013-08-23
  • 打赏
  • 举报
回复
到下面这个地址下载iTextAsian-all-2.1.zip http://sourceforge.net/projects/itextsharp/files/extras/ 然后解开里面的iTextAsian.dll(是2.1版的),拷贝到运行目录下(比如bin/debug) 程序中加上下面语句: iTextSharp.text.io.StreamUtil.AddToResourceSearch(Assembly.Load("iTextAsian")); // 或者用LoadFile加载,如果文件拷贝到其它目录下的话 BaseFont baseFont = BaseFont.CreateFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); var font = new Font(baseFont, 12);
bookoffbookoff 2013-08-23
  • 打赏
  • 举报
回复
to:jshi123 按照您说的,问题解决了,非常感谢, 谢谢您的解答
bookoffbookoff 2013-08-22
  • 打赏
  • 举报
回复
追加说明《非本机字体-即想使用iTextSharp自带的字体库》

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧