在itextsharp中将自定义字体应用于html

时间:2013-08-09 11:47:54

标签: c# html asp.net itextsharp

我有代码

FontFactory.Register(Server.MapPath("includes/fonts/Rockwell-Light.ttf"));
    StyleSheet style = new StyleSheet();
    style.LoadTagStyle("div", "face", "customfont");
    style.LoadTagStyle("div","encoding",BaseFont.CP1250);


foreach (IElement element in HTMLWorker.ParseToList(new StringReader("<div>" + getProductDescription((this.Product.Description != null) ? this.Product.Description : "") + "</div>"), style))
    {
        productDescCell.AddElement(element);
    }

我的问题是无法将字体应用于代码

2 个答案:

答案 0 :(得分:1)

BaseFont rockwellBold = BaseFont.CreateFont(Server.MapPath("includes/fonts/") + "ROCKB.TTF", BaseFont.CP1250, BaseFont.EMBEDDED);
Font rock_11_bold_header = new Font(rockwellBold, 11, Font.NORMAL, new BaseColor(190, 36, 34));
PdfPCell descHeadrCell = new PdfPCell();
descHeadrCell.AddElement(new Phrase("Demo"), rock_11_bold_header));

答案 1 :(得分:0)

我已经能够使用以下代码在iTextSharp中通过HTML实现自定义字体:

第1步:将您的字体文件复制到您网站的子目录中,出于我的目的,我使用了“/ media / fonts”

第2步:使用以下代码注册目录:

FontFactory.RegisterDirectory(C.Server.MapPath("/Media/Fonts"));

第3步:遍历FontFactory对象中的所有字体以获取字体名称:

StringBuilder sb = new StringBuilder();
        foreach (string fontname in FontFactory.RegisteredFonts)
        {

            sb.Append(fontname + "\n");

        }

第4步:通过font-family样式属性添加字体名称:

YOURDIVNAME.Attributes.Add("style", "font-family: brush script mt italic;");