4
我在视图中有一个HTML表格。我正在使用ITextSharp将 HTML转换为PDF。我想为每个页面使用外部CSS和 重复表头。如何使用CSS和页眉在每个页面上显示页眉 ?ITextSharp在PDF中使用外部css文件重复HTML表格标题
这是为了显示我的页头
str.Append("<table class='text-center'>");
str.Append("<tr class='h4'><td> " + companyName + " </ td ></ tr >");
str.Append("</table>");
这表明我的HTML
TextReader xmlString = new StringReader(str.Append(html).ToString());
这追加我的CSS
ICSSResolver cssResolver = XMLWorkerHelper.GetInstance().GetDefaultCssResolver(false);
cssResolver.AddCssFile(HttpContext.Current.Server.MapPath(@"~/Content/Print.css"), true);
IPipeline pipeline = new CssResolverPipeline(cssResolver,
new HtmlPipeline(htmlContext, new PdfWriterPipeline(document, writer)));
var worker = new XMLWorker(pipeline, true);
var xmlParse = new XMLParser(true, worker);
xmlParse.Parse(xmlString);
xmlParse.Flush();
此代码工作正常,但 我使用1个表格显示数据,表格标题不会重复 每页。如果我使用此代码重复表格的标题,则CSS不会 工作。我如何解决这个问题,同时使用CSS和重复标题。
using (TextReader sr = new StringReader(html))
{
List<IElement> elements =
iTextSharp.text.html.simpleparser.HTMLWorker.ParseToList(sr, null);
foreach (IElement el in elements)
{
if (el is PdfPTable)
{
((PdfPTable)el).HeaderRows = 2;
}
document.Add(el);
xmlParse.Parse(sr);
}
}
我不明白你的回答 –
你能澄清一下你不明白的东西吗?如果你像我在我的回答中所展示的那样构造HTML,你会得到重复的表头和页脚。我已经完成了内联CSS(* style =“repeat-header:yes; ...”*),但是您可以对外部CSS文件进行相同的操作。 – rhens
我想用iTextSharp的此代码的工作重复标题为我,但CSS没有使用这些代码的工作(TextReader的SR =新StringReader(HTML)){ 名单 元素 = iTextSharp.text.html.simpleparser.HTMLWorker.ParseToList (sr,null); (el.pdfPTable) ((PdfPTable)el).HeaderRows = 2; } document.Add(el); xmlParse.Parse(sr); } } –