0

我已经准备好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();

}

4

1 回答 1

3

您可以像这样获取已注册字体的列表:

ICollection<string> registeredFonts = iTextSharp.text.FontFactory.RegisteredFonts;

无论如何,iTextSharp您可以使用任何您想要的字体。如果您没有找到所需的字体,您可以.ttf从 Internet 下载文件并附上:

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

于 2013-01-31T12:10:50.250 回答