我正在使用MVC2,页眉和页脚与iTextSharp 4.1.6配合得很好,但它没有使用5.2。这是我的代码:
public FileStreamResult GridPDF()
{
MemoryStream workStream = new MemoryStream();
//the document
Document document = new Document();
PdfWriter.GetInstance(document, workStream);//fs);
document.Open();
iTextSharp.text.Font font5 = iTextSharp.text.FontFactory.GetFont("Arial", 10);
iTextSharp.text.Font font6 = iTextSharp.text.FontFactory.GetFont("Arial", 18);
//HeaderFooter header = new HeaderFooter(new Phrase(BPheader, FontFactory.GetFont("Arial", 8, Font.BOLD)), false);
//header.Border = Rectangle.BOTTOM_BORDER;
////header.GrayFill=(Color.GRAY);
//document.Header = header;
//HeaderFooter footer = new HeaderFooter(new Phrase("Page: ", FontFactory.GetFont("Arial", 8, Font.ITALIC)), true);
//footer.Border = Rectangle.TOP_BORDER;
//document.Footer = footer;
PdfPTable tableh = new PdfPTable(1);
PdfPCell cellh = new PdfPCell(new Phrase("", FontFactory.GetFont("Arial", 10)));
cellh.Colspan = 1;
tableh.HorizontalAlignment = 0;
tableh.WidthPercentage = 100;
cellh.BorderWidth = 3;
cellh.Padding = 0;
Image image = Image.GetInstance(Server.MapPath("~/Content/images/logo_small.png"));
// image.Alignment = 6; // iTextSharp.text.Image.ALIGN_RIGHT;
image.ScalePercent(40f); // change it's size
image.SetAbsolutePosition(500, 750);
document.Add(image);
Paragraph p = new Paragraph("Certificate", font6);
p.Alignment = 1;
document.Add(p);
tableh.DefaultCell.Border = Rectangle.TOP_BORDER;
tableh.DefaultCell.Border = Rectangle.BOTTOM_BORDER;
tableh.AddCell(cellh);
//close the document
document.Close();
//prepare output stream
byte[] byteInfo = workStream.ToArray();
SendPdfToBrowser(byteInfo);
r
eturn null;
}
任何建议!!提前谢谢。
答案 0 :(得分:0)
我想我知道你的问题,iTextSharp中的HeaderFooter属性已在版本5+中删除。 This answer可以帮助您顺利前进。基本上,您需要使用PageEvents类来添加页眉和页脚。
创建一个继承自PdfPageEventHelper并实现其成员的类。您只需要OnStartPage作为页眉,OnEndPage作为页脚。在创建PDF期间,iTextSharp将为PDF中的每个页面触发每个方法。
此外,here is a more thorough example(在C#中)。