我遇到一个问题,即我的itextsharp似乎无法正确解析并将非内联样式应用于我的HTML,而是仅以正确的内联样式呈现PDF,但是将任何内容都视为常规字符串。
经过研究,我发现它具有一个样式表类,因此我决定将我的css删除到我的标签中,然后尝试将其添加到页面中,如下所示:
var css = new StyleSheet();
css.LoadStyle(“ h1”,“ text-align”,“ center”);
css.LoadStyle(“ h1”,“文本转换”,“大写”);
css.LoadStyle(“ h1”,“ text-align”,“ center”);
css.LoadStyle(“ h2”,“ text-align”,“ center”);
css.LoadStyle(“ h2”,“文本转换”,“大写”);
css.LoadStyle(“ h2”,“ text-align”,“ center”);
css.LoadStyle(“ h3”,“ text-align”,“ center”);
css.LoadStyle(“ h3”,“文本转换”,“大写”);
css.LoadStyle(“ h3”,“ text-align”,“ center”);
css.LoadStyle(“ marginBottomSmall”,“ margin-bottom”,“ 10px”);
css.LoadStyle(“ tableTopAlign”,“ vertical-align”,“ top”);
css.LoadStyle(“ customBullet :: before”,“ content”,@“'\ 2022'”);
css.LoadStyle(“ customBullet :: before”,“ padding-right”,“ 0.5em”);
css.LoadStyle(“ customBullet”,“ display”,“ flex”);
css.LoadStyle(“ flexColumnContainer”,“ display”,“ flex”);
css.LoadStyle(“ flexColumnContainer”,“ flex-direction”,“ column”);
css.LoadStyle(“ tableDiv”,“ display”,“ table”);
css.LoadStyle(“ fixedWidthMed”,“ width”,“ 325px”);
css.LoadStyle(“ fixedWidthMed”,“ display”,“ table-cell”);
css.LoadStyle(“ tableRow”,“ display”,“ table-row”);
css.LoadStyle(“ flexRowContainer”,“ display”,“ flex”);
css.LoadStyle(“ flexRowContainer”,“ flex-direction”,“ row”);
css.LoadStyle(“ forceULPadding”,“ padding-left”,“ 20px”);
css.LoadStyle(“ SoapListNoBullets”,“列表样式”,“无”);
css.LoadStyle(“ printable”,“ max-width”,“ 800px”);
css.LoadStyle(“ bottomPadContent td”,“ padding-bottom”,“ 10px”);
css.LoadStyle(“ bottomPadContent td”,“ vertical-align”,“ top”);
然后我尝试如下将其应用于我的HtmlWorker:
var htmlWorker = new HtmlWorker(doc);
htmlWorker.Style = css;
但是,解析之后,我看不到它完全应用了样式。正确的方法是什么?我看到了很多有关itextsharp的信息,但是它们似乎是针对不同的版本的,也就是用于完整的.NET框架的,我受事实的限制,因为它必须是为dotnet核心制作的。