繁体   English   中英

如何在<span>使用itextsharp将html传递给pdf时</span>应用字体属性

[英]how to apply font properties on <span> while passing html to pdf using itextsharp

我正在使用itextsharp将html转换为pdf,我想设置标签的字体大小。 我怎样才能做到这一点?

目前我正在使用:

样式表

styles = new StyleSheet();
styles.LoadTagStyle(HtmlTags.SPAN, HtmlTags.FONTSIZE, "9f");
string contents = File.ReadAllText(Server.MapPath("~/PDF TEMPLATES/DeliveryNote.html"));

名单

parsedHtmlElements = HTMLWorker.ParseToList(new StringReader(contents), styles);

但它没有用。

HtmlTags中列出的常量实际上是HTML标签和HTML和CSS属性和值的大杂烩,有时候弄清楚要使用什么可能有点棘手。

在你的情况下尝试HtmlTags.SIZE而不是HtmlTags.FONTSIZE ,你应该得到你想要的。

编辑

我从来没有真正看过关于什么属性做什么的好教程,我通常只是直接去源代码。 例如,在ElementFactory类中有一个名为GetFont()的方法,它显示了如何解析字体信息。 特别是在第130行 (修订版229)上,您将看到使用HtmlTags.SIZE位置。 但是,在ChainedProperties在名为AdjustFontSize()的方法中解析大小的实际值。 如果你看它,你会发现它首先查找以pt结尾的值,例如12pt 如果它发现然后它丢弃了pt并按字面解析数字。 如果它没有以pt结尾,它跳转到HtmlUtilities到一个名为GetIndexedFontSize()的方法。 对于相对大小,此方法期望值为+1-1 ,或者对于索引大小,此方法只需要像2这样的整数。 根据HTML规范,用户代理应该接受字体大小的值1到7,并将它们映射到逐渐增加的字体大小列表。 这意味着你的9f值实际上不是传递给它的有效值,你可能应该通过9pt而不是。

无论如何,你有一半在源头跳转来找出解析的地方。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM