簡體   English   中英

ITextSharp:指定HTML類或ID CSS

[英]ITextSharp: Specify HTML Classes or ID CSS

我正在使用ITextSharp將一些HTML轉換為.pdf文件。

是否可以在ITextSharp中設置類CSS或僅設置HTML元素CSS?

例如:如果我轉換以下HTML

<p class="redBigText">test</p>

是否可以創建ITextSharp StyleSheet對象並為類redBigText指定CSS?

StyleSheet styles = new iTextSharp.text.html.simpleparser.StyleSheet();
styles.LoadTagStyle(".redBigText", "font-size", "50px");
styles.LoadTagStyle(".redBigText", "color", "#ff0000");
var parsedHtmlElements = HTMLWorker.ParseToList(new StringReader(mainContents), styles);

還是只能在ITextSharp中設置CSS元素?

StyleSheet styles = new iTextSharp.text.html.simpleparser.StyleSheet();
styles.LoadTagStyle("P", "font-size", "50px");
styles.LoadTagStyle("P", "color", "#ff0000");
var parsedHtmlElements = HTMLWorker.ParseToList(new StringReader(mainContents), styles);

是的,您可以指定CSS類名稱:

string Html = @"
<h1>h1</h1>
<p>Default paragraph</p>  
<p class='redBigText'>A paragraph with CSS class</p>  
";
StyleSheet styles = new StyleSheet();
styles.LoadStyle("redBigText", "size", "20pt");
styles.LoadStyle("redBigText", "color", "#ff0000");

記錄在這里

不幸的是,您不能指定id屬性。 還應注意,如果您混合並匹配LoadTagStyle()LoadStyle()調用,則LoadTagStyle()獲勝。 例如:

StyleSheet styles = new StyleSheet();
styles.LoadTagStyle("p", "size", "10pt");
styles.LoadTagStyle("p", "color", "#0000ff");     
styles.LoadStyle("redBigText", "size", "20pt");
styles.LoadStyle("redBigText", "color", "#ff0000");

在這里,所有段落均為藍色和10pt。

盡管它是舊帖子,但可能有人可以通過以下解決方案獲得幫助。

您必須轉換以下行

<p class="redBigText">test</p>

<p style="font-size : 50px;color : #ff0000">test</p>

itextsharp現在將內聯樣式應用於您的html,它將無法識別css類,因為它們是從外部文件引用的。

您可以使用此內聯樣式工具將css類轉換為內聯樣式。

  • 只需將CSS從您的類復制到HTML頁面即可。
  • 將html復制到inliner工具。

您將獲得內聯的CSS HTML頁面。 〜幸福的外衣

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM