簡體   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