我已经AcroField:
AcroFields field = stamper.AcroFields;
我就是用这些BASEFONT和字体设置:
string fontName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts), "times.ttf");
BaseFont bf = BaseFont.CreateFont(fontName, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
Font font = new Font(bf,12);
当我设置field.SetFieldProperty(fieldName的, “12”,12.0f,NULL);并尝试导出我的PDF全部写在西里尔不显示文本。我尝试几种不同的方式来解决这个问题,但他们不帮我。
我不是很确定这些字体设置上AcroFields究竟是如何申请
如果有人知道的一些事情或者能不能告诉我在某个地方,请让我知道。
如果您正在使用艾可现场处理,然后下面片段是有用的:
var memStream = new MemoryStream();
var stamper = new PdfStamper(reader, memStream);
AcroFields form = stamper.AcroFields;
foreach(string key in form.Fields.Keys)
{
form.SetFieldProperty(key, "textsize", (float)7, null);
form.SetFieldProperty(key, "textfont", bfArialUniCode, null);
form.RegenerateField(key);
}
您正在使用SetFieldProperty
了错误的参数:"12"
不是字段属性。我假设你想改变字体和字体大小。这样做了这样的:
field.setFieldProperty(fieldName, "textfont", bf, null);
field.SetFieldProperty(fieldName, "textsize", 12f, null);
有可以使用的替代品;您可以定义为完整的形式替代字体:
field.AddSubstitutionFont(bf);
现在bf
可以被用作用于所有领域的取代字体;你不必设置字段属性为每个单独的字段。