繁体   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