我正在使用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);
答案 0 :(得分:6)
是的,你可以指定一个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。
答案 1 :(得分:1)
虽然它很老,但可能有人可以通过以下解决方案获得帮助。
您必须转换以下行
<p class="redBigText">test</p>
到
<p style="font-size : 50px;color : #ff0000">test</p>
itextsharp现在将内联样式应用于您的html,它将无法识别css类,因为它们是从外部文件引用的。
你可以使用 This inline styles tool将css类转换为内联样式。
您将获得内联的css html页面。 〜快乐的Codding