今天是个好日子 !
在将 gridview 转换为 PDF 之前,我可以使用以下方法修改字体大小和颜色:
gridview.HeaderRow.Style.Add("font-family", "Arial, Helvetica, sans-serif;");
gridview.HeaderRow.Style.Add("font-size", "7.20px");
gridview.HeaderRow.Style.Add("color", "#284775");
gridview.Style.Add("font-family", "Arial, Helvetica, sans-serif;");
gridview.Style.Add("font-size", "6px");
由于正在显示的信息,gridview 具有不同的列宽,这些大小是在 .aspx 文件中设置的。但是,生成的 pdf 文件会自动将每列的宽度调整为相同的大小,因此信息会缩小,看起来不太好..
我尝试了以下方法:
gridview.Width =100;
gridview.Style.Add("width","100");
还有更多,但无法将 gridview 调整为原始列宽。
我怎样才能做到这一点?
提前致谢。
编辑:我也试过:
gridview.Columns[3].ItemStyle.Width =Unit.Pixel(10);
这是我用来生成 PDF 文件的代码:
StringWriter stw = new StringWriter();
HtmlTextWriter htextw = new HtmlTextWriter(stw);
gridview.HeaderRow.Style.Add("font-family", "Arial, Helvetica, sans-serif;");
gridview.HeaderRow.Style.Add("font-size", "8.20px");
gridview.HeaderRow.Style.Add("color", "#284775");
gridview.Style.Add("font-family", "Arial, Helvetica, sans-serif;");
gridview.Style.Add("font-size", "8px");
gridview.Columns[3].ItemStyle.Width =Unit.Pixel(10);
gridview.RenderControl(htextw);
Document document = new Document(iTextSharp.text.PageSize.LETTER.Rotate(), 10, 10, 42, 35);
string path = "path where im saving file".pdf";
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(path, FileMode.Create));
StringReader str = new StringReader(stw.ToString());
iTextSharp.text.html.simpleparser.HTMLWorker htmlworker = new HTMLWorker(document);
htmlworker.Parse(str);
Response.Write(document);
document.Close();
编辑:在搜索时找到了这个链接,这可能正是我所需要的,但是在创建表时出现以下错误:
the type or namespace name 'table' does not exist in the namespace 'itextsharp.text'
我添加了所有的 itextsharp 引用。可能是版本问题?