设置带有iTextSharp问题的字体
全部, 我正在尝试填写现有的PDF,无法更改字体设置带有iTextSharp问题的字体,itext,Itext,全部, 我正在尝试填写现有的PDF,无法更改字体 var filename = ConfigurationManager.AppSettings["Pdf"]; var reader = new PdfReader(AppDomain.CurrentDomain.BaseDirectory + filename); var ms = new MemoryStream(); var stamper = new PdfStamper(r
var filename = ConfigurationManager.AppSettings["Pdf"];
var reader = new PdfReader(AppDomain.CurrentDomain.BaseDirectory + filename);
var ms = new MemoryStream();
var stamper = new PdfStamper(reader, ms);
using (StreamWriter sw = new StreamWriter(ms))
{
foreach (var key in reader.AcroFields.Fields.Keys)
{
stamper.AcroFields.SetFieldProperty(key, "textsize", 8.0f, null);
stamper.AcroFields.SetFieldProperty(key, "textfont", BaseFont.HELVETICA, null);
stamper.AcroFields.SetField(key, "some value");
}
}
stamper.FormFlattening = true;
stamper.Close();
reader.Close();
我错过了什么?当我编译这段代码时,它在代码的“textfont”行爆炸,并说“无法将类型为“System.String”的对象强制转换为类型为“iTextSharp.text.pdf.BaseFont”
还在学这些东西
救命啊 在您设置的代码中
stamper.AcroFields.SetFieldProperty(key, "textfont", BaseFont.HELVETICA, null);
AcroFields.SetFieldProperty
属性“textfont”需要类型为BaseFont
的值
但是BaseFont.HELVETICA
不是一个特定的BaseFont
实例,它是一个特定的base 14字体的名称,一个字符串
常量
因此,当iTextSharp尝试使用您作为BaseFont
值指定的string
值时,在运行时会出现该异常
您可以使用以下命令检索Helvetica的BaseFont
实例:
BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);
并在SetFieldProperty
调用中使用它而不是BaseFont.HELVETICA
在您设置的代码中
stamper.AcroFields.SetFieldProperty(key, "textfont", BaseFont.HELVETICA, null);
AcroFields.SetFieldProperty
属性“textfont”需要类型为BaseFont
的值
但是BaseFont.HELVETICA
不是一个特定的BaseFont
实例,它是一个特定的base 14字体的名称,一个字符串
常量
因此,当iTextSharp尝试使用您作为BaseFont
值指定的string
值时,在运行时会出现该异常
您可以使用以下命令检索Helvetica的BaseFont
实例:
BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);
并在SetFieldProperty
调用中使用它而不是BaseFont.HELVETICA