2013-01-31 58 views
0

我有pdf模板準備好與me.On在pdf.Need上設置不同的字體和字體大小根據需要設置不同的字體和字體大小使用itextsharp(pdfstamper)。 但我想設置各種不同的字體,如CourierNew,Arial和其他一些第三方註冊的字體。我如何使用itextsharp使用這些不同的字體。 請參閱以下代碼片段。 用於在pdf模板上寫入值的以下代碼片段 設置定義了不同字體和字號的字體調用函數SetPrintFont。 請指導在同itextsharp支持c#中的快遞新字體或任何其他註冊字體

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(); 

}

回答

3

你可以得到registerred字體這樣的名單:

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); 

BaseFontiTextSharp.text.pdf

+0

成員@alreat我不能使用字體對象與overContent.SetFontAndSize(字體,字體大小);我需要使用BaseFont。 – techno