我已经准备好了pdf模板。在pdf上匹配键的写入值。需要根据requireemnt设置不同的字体和字体大小使用itextsharp(pdfstamper)。 但我想设置各种不同的字体,如CourierNew,Arial和其他一些第三方注册字体。如何使用itextsharp使用这些不同的字体。 请参阅以下代码段。 以下代码片段用于在pdf模板上写入值 设置字体调用函数SetPrintFont,其中定义了不同的字体和字体大小。 请指导相同的
var pdfReader = new PdfReader(filebyte);
var pdfStamper = new PdfStamper(pdfReader, new FileStream(pdfname, FileMode.Create));
AcroFields pdfFormFields = pdfStamper.AcroFields;
foreach (DictionaryEntry de in pdfReader.AcroFields.Fields)
{
//set the field to bold
pdfFormFields.SetFieldProperty(de.Key.ToString(), "textfont", font.BaseFont, null);
Regex regex = new Regex(@"^\d$");
if (regex.IsMatch(de.Key.ToString()))
{
//set the text of the form field
pdfFormFields.SetField(de.Key.ToString(), response.ResponseValues.ToString());
}
else
{
pdfFormFields.SetField(de.Key.ToString(), response.ResponseValues.ToString());
}
}
pdfStamper.FormFlattening = false;
pdfStamper.Close();
}
答案 0 :(得分:3)
你可以得到这样的注册字体列表:
ICollection<string> registeredFonts = iTextSharp.text.FontFactory.RegisteredFonts;
无论如何,iTextSharp
你可以使用你想要的任何字体。如果找不到所需的字体,可以从互联网上下载.ttf
文件并附上:
BaseFont baseFont = BaseFont.CreateFont(fontFolderPath + "arial.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED)
Font font = iTextSharp.text.Font(baseFont, fontSize, iTextSharp.text.Font.BOLD);
BaseFont
是iTextSharp.text.pdf