C#에서 gridview 테이블을 PDF 파일로 내보내려고합니다. 다른 솔루션을 검색해 보니 모든 사용자가 먼저 SQL 데이터베이스에서 테이블을 채우려 고합니다. 이 단계는 필자가 이미 활성 디렉토리와 그 밖의 다른 디렉토리를 통해 테이블을 채 웠기 때문에 불필요합니다. 현재 내 코드는 작동하지만 흑백인데 오히려 둔감 해 보입니다.GridView를 PDF로 내보내기 C#
protected void ExportToPDF()
{
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition",
"attachment;filename=GridViewExport.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
grdvList.AllowPaging = false;
// grdvList.DataBind();
grdvList.RenderBeginTag(hw);
grdvList.HeaderRow.RenderControl(hw);
foreach (GridViewRow row in grdvList.Rows)
{
row.RenderControl(hw);
}
grdvList.FooterRow.RenderControl(hw);
grdvList.RenderEndTag(hw);
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();
}
그리고 내 gridview에 : 여기
은 (iTextSharp 사용) 내 현재 코드입니다<asp:GridView ID="grdvList" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField HeaderText="Name" datafield="Name" ReadOnly="True" >
<ItemStyle Width="17.5%" />
</asp:BoundField>
<asp:BoundField HeaderText="Phone Ext" datafield="Phone Ext" ReadOnly="True" >
<ItemStyle Width="11.5%" />
</asp:BoundField>
<asp:BoundField HeaderText="Mobile" datafield="Mobile" ReadOnly="True" >
<ItemStyle Width="16%" />
</asp:BoundField>
<asp:BoundField HeaderText="Email" datafield="Email" ReadOnly="True" >
<ItemStyle Width="47.5%" />
</asp:BoundField>
<asp:BoundField HeaderText="Department" DataField="Department" ReadOnly="True" >
<ItemStyle Width="17.5%" />
</asp:BoundField>
</Columns>
<alternatingrowstyle backcolor="#D6D6D6" />
</asp:GridView>
나는 모든 두 번째 행과 제작, 모든 테이블 셀에 테두리를 추가 할 회색 배경. 내 웹 페이지에서 잘 작동하지만 PDF 문서에서도 작동해야합니다. 누구든지 도와 줄 수 있습니까? 다음과 같이 영문에있는 gridview에서 Alternaterowcolors를 사용하는
이 도움이 될 : http://www.pdfsharp.net/wiki/invoice-sample.ashx –
첫째, 'Response.Write (pdfDoc);'를 완전히 제거하면 라인이 잘못되어 실제로 PDF가 손상 될 수 있습니다. 둘째로,'HTMLWorker'는 매우 오래되었고 더 이상 지원되지 않으며 iText 5에서'XMLWorker'로 대체되었습니다. 전자는 CSS에 대한 가장 기본적인 지원 만했습니다. [주제에 관한이 길지만 유익한 게시물]을 참조하십시오. (http://stackoverflow.com/a/25164258/231316) –