我在 pdf 中添加附加内容时遇到问题
我正在将我的数据集转换为 pdf 文档。我的数据集包含产品账单详细信息。因此,在 pdf 顶部,我需要添加更多内容,例如“我的公司名称和地址、客户名称、账单日期、帐单号”
下面的代码我用来转换为pdf。
public static void Exportdata(DataTable dataTable, HttpResponse Response, int val)
{
//String filename = String.Concat(name, "-", DateTime.Today.Day.ToString(), "/", DateTime.Today.Month.ToString(), "/", DateTime.Today.Year.ToString(), ".pdf");
Document pdfDoc = new Document(PageSize.A4, 30, 30, 40, 25);
System.IO.MemoryStream mStream = new System.IO.MemoryStream();
PdfWriter writer = PdfWriter.GetInstance(pdfDoc, mStream);
//int cols = 0;
//int rows = 0;
int cols = dataTable.Columns.Count;
int rows = dataTable.Rows.Count;
pdfDoc.Open();
iTextSharp.text.Table pdfTable = new iTextSharp.text.Table(cols, rows);
pdfTable.BorderWidth = 1;
pdfTable.Width = 100;
pdfTable.Padding = 1;
pdfTable.Spacing = 1;
//creating table headers
for (int i = 0; i < cols; i++)
{
Cell cellCols = new Cell();
Font ColFont = FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD);
Chunk chunkCols = new Chunk(dataTable.Columns[i].ColumnName, ColFont);
cellCols.Add(chunkCols);
pdfTable.AddCell(cellCols);
}
//creating table data (actual result)
for (int k = 0; k < rows; k++)
{
for (int j = 0; j < cols; j++)
{
Cell cellRows = new Cell();
Font RowFont = FontFactory.GetFont(FontFactory.HELVETICA, 6);
Chunk chunkRows = new Chunk(dataTable.Rows[k][j].ToString(), RowFont);
cellRows.Add(chunkRows);
pdfTable.AddCell(cellRows);
}
}
pdfDoc.Add(pdfTable);
pdfDoc.Close();
Response.ContentType = "application/octet-stream";
if (val == 1)
{
Response.AddHeader("Content-Disposition", "attachment; filename=Users.pdf");
}
else if (val == 2)
{
Response.AddHeader("Content-Disposition", "attachment; filename=Customers.pdf");
}
else if (val == 3)
{
Response.AddHeader("Content-Disposition", "attachment; filename=Materials.pdf");
}
else
{
Response.AddHeader("Content-Disposition", "attachment; filename=Reports.pdf");
}
Response.Clear();
Response.BinaryWrite(mStream.ToArray());
//Response.Write(mStream.ToString());
HttpContext.Current.ApplicationInstance.CompleteRequest();
Response.End();
}
I am converting my data set into a pdf document.My data set contains the product bill details.So,at the top of the pdf i need to added some more content like "my company name & address customer name, date of bill,bill no"
Below code i am using to convert into pdf.
public static void Exportdata(DataTable dataTable, HttpResponse Response, int val)
{
//String filename = String.Concat(name, "-", DateTime.Today.Day.ToString(), "/", DateTime.Today.Month.ToString(), "/", DateTime.Today.Year.ToString(), ".pdf");
Document pdfDoc = new Document(PageSize.A4, 30, 30, 40, 25);
System.IO.MemoryStream mStream = new System.IO.MemoryStream();
PdfWriter writer = PdfWriter.GetInstance(pdfDoc, mStream);
//int cols = 0;
//int rows = 0;
int cols = dataTable.Columns.Count;
int rows = dataTable.Rows.Count;
pdfDoc.Open();
iTextSharp.text.Table pdfTable = new iTextSharp.text.Table(cols, rows);
pdfTable.BorderWidth = 1;
pdfTable.Width = 100;
pdfTable.Padding = 1;
pdfTable.Spacing = 1;
//creating table headers
for (int i = 0; i < cols; i++)
{
Cell cellCols = new Cell();
Font ColFont = FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD);
Chunk chunkCols = new Chunk(dataTable.Columns[i].ColumnName, ColFont);
cellCols.Add(chunkCols);
pdfTable.AddCell(cellCols);
}
//creating table data (actual result)
for (int k = 0; k < rows; k++)
{
for (int j = 0; j < cols; j++)
{
Cell cellRows = new Cell();
Font RowFont = FontFactory.GetFont(FontFactory.HELVETICA, 6);
Chunk chunkRows = new Chunk(dataTable.Rows[k][j].ToString(), RowFont);
cellRows.Add(chunkRows);
pdfTable.AddCell(cellRows);
}
}
pdfDoc.Add(pdfTable);
pdfDoc.Close();
Response.ContentType = "application/octet-stream";
if (val == 1)
{
Response.AddHeader("Content-Disposition", "attachment; filename=Users.pdf");
}
else if (val == 2)
{
Response.AddHeader("Content-Disposition", "attachment; filename=Customers.pdf");
}
else if (val == 3)
{
Response.AddHeader("Content-Disposition", "attachment; filename=Materials.pdf");
}
else
{
Response.AddHeader("Content-Disposition", "attachment; filename=Reports.pdf");
}
Response.Clear();
Response.BinaryWrite(mStream.ToArray());
//Response.Write(mStream.ToString());
HttpContext.Current.ApplicationInstance.CompleteRequest();
Response.End();
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您想使用 iTextSharp 添加标题吗?
在本例中,扩展 PdfPageEventHelper 并使用 OnStartPage 事件。
这是一个 示例。
Do you want to add a header using iTextSharp?
In this case extend PdfPageEventHelper and use the OnStartPage event.
Here's an example .