0
我将this java code转换为C#,但是我明显错过了一些东西,因为头文件不在我的.pdf文档中。如何将iTextSharp的标题打印到.pdf文件中?
这里的转换代码:
public HttpResponseMessage CreatePdf()
{
HeaderTable HeaderTable = new HeaderTable();
// step 1
Document document = new Document(PageSize.A4, 36, 36, 20 + HeaderTable.getTableHeight(), 36);
// step 2
var memoryStream = new MemoryStream();
PdfWriter writer = PdfWriter.GetInstance(document, memoryStream);
writer.CloseStream = false;
writer.PageEvent = HeaderTable;
// step 3
document.Open();
// step 4
for (int i = 0; (i< 50); i++) {
document.Add(new Paragraph("Hello World!"));
}
document.NewPage();
document.Add(new Paragraph("Hello World!"));
document.NewPage();
document.Add(new Paragraph("Hello World!"));
// step 5
document.Close();
memoryStream.Seek(0, SeekOrigin.Begin);
return new HttpResponseMessage
{
Content = new StreamContent(memoryStream)
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/pdf"),
ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "TEST.pdf"
}
}
},
StatusCode = HttpStatusCode.OK
};
}
public class HeaderTable : PdfPageEventHelper
{
protected PdfPTable table;
protected float tableHeight;
public HeaderTable()
{
table = new PdfPTable(1);
table.TotalWidth = 523;
table.LockedWidth = true;
table.AddCell("Header row 1");
table.AddCell("Header row 2");
table.AddCell("Header row 3");
tableHeight = table.TotalHeight;
}
public float getTableHeight()
{
return tableHeight;
}
public void onEndPage(PdfWriter writer, Document document)
{
table.WriteSelectedRows(0, -1, document.Left, (document.Top + ((document.TopMargin + tableHeight)/2)), writer.DirectContent);
}
}
我敢肯定,我做了一个简单的错误,但我没有找到它呢。请帮忙。
'partial'不应该是必要的(除非您已拆分您的por中的HeaderTable定义t)中,重要的部分是*覆盖*使用*正确的方法名称*(在iTextSharp中,以大写字母开头的方法的.Net约定被遵循,在iText/Java中以小写字母开头的方法的Java约定)。 – mkl