[英]itextsharp pdfpcell header
I'd like to have a table of cells of class PdfPCell each with a tiny header, main string and tiny footer. 我想要一个PdfPCell类的单元格表,每个单元都有一个小标题,主字符串和小页脚。 I can't find a way to insert them since HeaderandFooter is not allowed element to add to the cell, one paragraph overwrites another and so on.
我找不到插入它们的方法,因为HeaderandFooter不允许元素添加到单元格,一个段落覆盖另一个,依此类推。 Any ideas?
有任何想法吗?
Thanks in advance 提前致谢
You can use nested tables. 您可以使用嵌套表。
Instead of a PdfPCell, insert a 1x1 table with a tiny header & a tiny footer. 而不是PdfPCell,插入一个带有小标题和一个小页脚的1x1表。
EDIT:
编辑:
let's forget about table footer and header feature of iTextSharp because it's useful when a table spans over multiple pages and then you have footer & header repeated. 让我们忘记iTextSharp的表格页脚和标题功能,因为当表格跨越多个页面然后重复页脚和标题时它很有用。 In our case, header & footer will belong to the inner table that will contain only 3 cells, so let's use PdfPCell for all of them.
在我们的例子中,页眉和页脚将属于仅包含3个单元格的内部表,所以让我们使用PdfPCell来表示所有这些单元格。
Then main function is GetHFCell
that will return a PdfPTable containing a customized header cell (height, font, text,..), a customized footer cell & a middle cell containing the main text. 然后main函数是
GetHFCell
,它将返回一个包含自定义标题单元格(高度,字体,文本,...)的PdfPTable,一个自定义页脚单元格和一个包含主文本的中间单元格。 This function is called whenever we want to add a cell to our main table (example of how to use this function in GeneratePDF
). 每当我们想要向主表添加单元格时,就会调用此函数(如何在
GeneratePDF
使用此函数)。
private static PdfPTable GetHFCell(string header, string footer, string text)
{
PdfPTable pdft;
PdfPCell hc;
PdfPCell fc;
pdft = new PdfPTable(1);
pdft.WidthPercentage = 100f;
pdft.DefaultCell.Border = 0;
hc = new PdfPCell(new Phrase(header));
hc.Top = 0f;
hc.FixedHeight = 7f;
hc.HorizontalAlignment = 1;
hc.BackgroundColor = iTextSharp.text.Color.ORANGE;
((Chunk)(hc.Phrase[0])).Font = new iTextSharp.text.Font(((Chunk)(hc.Phrase[0])).Font.Family, 5f);
fc = new PdfPCell(new Phrase(footer));
hc.Top = 0f;
fc.FixedHeight = 7f;
hc.HorizontalAlignment = 1;
fc.BackgroundColor = iTextSharp.text.Color.YELLOW;
((Chunk)(fc.Phrase[0])).Font = new iTextSharp.text.Font(((Chunk)(fc.Phrase[0])).Font.Family, 5f);
pdft.AddCell(hc);
pdft.AddCell(text);
pdft.AddCell(fc);
return pdft;
}
public void GeneratePDF()
{
Document document = new Document();
try
{
PdfWriter.GetInstance(document, new FileStream("File1.pdf", FileMode.Create));
document.Open();
PdfPTable table = new PdfPTable(5);
table.DefaultCell.Padding = 0;
table.DefaultCell.BorderWidth = 2f;
for (int j = 1; j < 6; j++)
{
for (int i = 1; i < 6; i++)
{
//calling GetHFCell
table.AddCell(
GetHFCell("header " + ((int)(i + 5 * (j - 1))).ToString(),
"footer " + ((int)(i + 5 * (j - 1))).ToString(),
"z" + j.ToString() + i.ToString()));
}
}
document.Add(table);
}
catch (DocumentException de)
{
//...
}
catch (IOException ioe)
{
//...
}
document.Close();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.