使用Itextsharp设置Pdfptable中所有文本的字体

时间:2012-07-20 10:24:07

标签: c# itextsharp pdfptable

var htmlarraylist = HTMLWorker.ParseToList(new StringReader(htmlText), styles);
document.Open();

BaseFont Vn_Helvetica = BaseFont.CreateFont(@"C:\Windows\Fonts\arial.ttf", 
"Identity-H", BaseFont.EMBEDDED);
Font fontNormal = new Font(Vn_Helvetica, 12, Font.NORMAL);


                foreach (var t in htmlarraylist)
                {
                    if (t is PdfPTable)
                    {                          
                       //how set fontNormal all text from Pdfptable ?
                    }

                    document.Add((IElement)t);

                }

                    document.Close();

有人可以帮助我吗

2 个答案:

答案 0 :(得分:3)

请尝试将字体设置为PdfPTable.DefaultCell property

中的foreach loop
Example:
t.DefaultCell.Phrase = new Phrase() { Font = fontNormal };

答案 1 :(得分:0)

我尝试在pdf模板中设置字体系列。并显示以下错误

'BaseFont'不包含'Cambria'的定义

请建议我...谢谢

public void abcd()
        {
            try
            {
                string UniqueNumber = Request.QueryString["UniqueNumber"];
                string strFileName = UniqueNumber;
                string strFileExtension = ".pdf";
                string strContentType = FileManager.FileContentType_application_pdf;
                string strExportData = string.Empty;
                Document pdfDoc = new Document();
                HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
                var output = new MemoryStream();
                BaseFont bfTimes = BaseFont.CreateFont(BaseFont.Cambria, BaseFont.CP1252, false);
                //Font ChronicleFont = new Font(bfTimes, 26f);
                StringWriter sw = new StringWriter();
                HtmlTextWriter htw = new HtmlTextWriter(sw);
                StringReader sr;
                sr = new StringReader(Convert.ToString(ExportData.UserDetails(UniqueNumber)));
                PdfWriter.GetInstance(pdfDoc, output);
                pdfDoc.Open();
                htmlparser.Parse(sr);
                pdfDoc.Close();
                strFileName = strFileName.Replace(" - ", "-").Replace(" ", "-").Replace("--", "-");
                Response.ClearContent();
                Response.Buffer = true;
                Response.AddHeader("content-disposition", string.Format("attachment; filename={0}{1}", strFileName, strFileExtension));
                Response.ContentType = strContentType;
                Response.Charset = "";
                Response.BinaryWrite(output.ToArray());
                Response.Flush();
                Response.End();

            }
            catch (Exception ex)
            {
                //

            }
        }