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); } } –