我有一些带有一些数据的网格视图,我想将它转换为pdf,同时显示每篇文章中的图像,我有pdf格式的白色和绿色每个单元格,但没有数据
我正在使用此代码
bool gerarpdf;
protected void btn_pdf_Click(object sender, ImageClickEventArgs e)
{
gerarpdf = true;
}
public override void VerifyRenderingInServerForm(Control control)
{
/* Verifies that the control is rendered */
/* Necessario para gerar pdf com gridview */
}
protected override void Render(HtmlTextWriter writer)
{
if (gerarpdf == true)
{
//pdf generation code called here
int columns = GridView2.Columns.Count;
// Table and PdfTable classes removed in version 5.XXX
iTextSharp.text.pdf.PdfPTable table = new iTextSharp.text.pdf.PdfPTable(columns);
// padding can only be set for cells, __NOT__ PdfPTable object
int padding = 5; float[] widths = new float[columns]; for (int x = 0; x < columns; x++)
{
widths[x] = (float)GridView2.Columns[x].ItemStyle.Width.Value; string cellText = Server.HtmlDecode(GridView2.HeaderRow.Cells[x].Text);
// Cell and Color classes are gone too
iTextSharp.text.pdf.PdfPCell cell = new iTextSharp.text.pdf.PdfPCell(new iTextSharp.text.Phrase(cellText)) { BackgroundColor = new iTextSharp.text.BaseColor(System.Drawing.ColorTranslator.FromHtml("#008000")), Padding = padding }; table.AddCell(cell);
}
// next two lines set the table's __ABSOLUTE__ width
table.SetTotalWidth(widths); table.LockedWidth = true; for (int i = 0; i < columns; i++) { if (GridView2.Rows[i].RowType == DataControlRowType.DataRow) { for (int j = 0; j < columns; j++) { string cellText = Server.HtmlDecode(GridView2.Rows[i].Cells[j].Text); iTextSharp.text.pdf.PdfPCell cell = new iTextSharp.text.pdf.PdfPCell(new iTextSharp.text.Phrase(cellText)) { Padding = padding }; if (i % 2 != 0) { cell.BackgroundColor = new iTextSharp.text.BaseColor(System.Drawing.ColorTranslator.FromHtml("#C2D69B")); } table.AddCell(cell); } } } Response.ContentType = "application/pdf"; iTextSharp.text.Document pdfDoc = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4, 10f, 10f, 10f, 0f); iTextSharp.text.pdf.PdfWriter.GetInstance(pdfDoc, Response.OutputStream); pdfDoc.Open(); pdfDoc.Add(table); pdfDoc.Close(); Response.End();
}
else
{
//let page render normally
base.Render(writer);
}
}
需要使用paggin选项我在这里找到了一个demoe,但我不知道在这里将它放入我的代码中http://archive.aspsnippets.com/demos/GridView2PDF.aspx
我需要的是与此类似的东西,但也包括http://www.aspsnippets.com/Articles/Export-GridView-with-Images-to-Word-Excel-and-PDF-Formats-in-ASP.Net.aspx
答案 0 :(得分:0)
一旦我不得不完成从数据库中获取数据并生成Word和PDF文档的工作,并且在很多RND之后,我找到了一个很棒的帮助并且易于使用的东西。您可以将表转换为表中的表PDF你只需要去除列,然后添加任意数量的行你也可以添加样式到表格。页面格式同样容易页眉,每件事都很容易。
以下是链接PDFsharp & MigraDoc