在iTextSharp中更改PDF字体大小

时间:2012-11-08 08:06:54

标签: c# asp.net pdf fonts itextsharp

以下是我使用iTextSharp创建PDF的函数。

让我解释一下这个功能......

我在这里从另一个模板PDF文件创建一个PDF文件。模板PDF文件将发送到bytes[]中的此功能,然后我从此创建pdfReader ...

pdfReader我创建pdfStamper(即新的PDF文件)并将响应值写入其字段。它工作得很好......唯一的问题是fint值大小很大......

public void GeneratePrintPDFTest(ResponseGroup actual, Pages page, byte[] filebyte, out string pdfname, string localstorage)
{
   string rootPath = @"D:/FOP-PDF/";
   var pdfReader = new PdfReader(filebyte);
   var pdfStamper = new PdfStamper(pdfReader,new FileStream(rootPath.ToString(CultureInfo.InvariantCulture) + page.PageId.ToString(CultureInfo.InvariantCulture)
                    + ".pdf",FileMode.Create));
   pdfname = rootPath.ToString(CultureInfo.InvariantCulture) + page.PageId.ToString(CultureInfo.InvariantCulture) + ".pdf";

   AcroFields pdfFormFields = pdfStamper.AcroFields;

   foreach (DictionaryEntry de in pdfReader.AcroFields.Fields)
   {
       var response = actual.Responses.Where(obj => obj.ITPPageFieldKeyId == Convert.ToInt32(de.Key.ToString())).Select(obj => obj).FirstOrDefault();

       if (response != null)
       {
           if (response.ResponseValues != null && !string.IsNullOrEmpty(response.ResponseValues.ToString())
                        && response.ResponseValues.ToString() != "0" && !string.IsNullOrEmpty(response.DataItemID)
                        && response.DataItemID != "0")
           {
              if (response.PrintFormulaResult || response.PageFieldFormulaId == 0)
              {
                 pdfFormFields.SetField(de.Key.ToString(), response.ResponseValues.ToString());
              }
           }
        }
     }

     pdfStamper.FormFlattening = false;
     pdfStamper.Close();
}

我尝试了以下解决方案,但没有用......

float fSize = 10;
pdfFormFields.SetFieldProperty(de.Key.ToString(), de.Key.ToString(), fSize, null);

我也怀疑它可能来自模板PDF文件,但如果是这样,我怎么能以编程方式更改它。

请帮助我......提前致谢...

0 个答案:

没有答案