gpt4 book ai didi

asp.net - 将 GridView 导出为 PDF 后如何更改 iTextSharp 中的默认字体大小?

转载 作者:行者123 更新时间:2023-12-03 18:04:29 30 4
gpt4 key购买 nike

我在以下链接中使用 iTextSharp 方法将 GridView 导出到 PDF 文档:

http://www.aspsnippets.com/Articles/Export-GridView-To-Word-Excel-PDF-CSV-Formats-in-ASP.Net.aspx

代码是这样的:

protected void btnExportPDF_Click(object sender, EventArgs e)
{
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);

GridView1.AllowPaging = false;
GridView1.DataBind();
GridView1.RenderControl(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();
}

除了PDF中的字体大小外,这很完美。我猜 iTextSharp 的默认值是 Arial 和 12pt。

有什么方法可以为整个 PDF 全局更改此默认字体及其大小(至少是其大小)?

谢谢!

最佳答案

确实有。

(但我最初的建议不是...... Font.DEFFAULTSIZE 是“静态最终”,所以...... Derp)。

呃...我不认为 HTMLWorker 的样式表代码会让你设置一个整体的默认字体大小,我还以为我没有用过那么多。我可能是错的。您可以按类或标签设置它,但这可能需要大量工作......嘿!

我认为您可以为“body”设置样式,然后会影响其中的所有内容。除非您正在处理 HTML 片段,否则这应该可以解决问题:

StyleSheet bodySize = new StyleSheet();
Map<String,String> props = new HashMap<String, String>();
props.put(ElementTags.SIZE, "8");
bodySize.applyStyle("body", props);

htmlparser.setStyleSheet(bodySize);

我这样做的方法是更改​​源代码 (com.itextpdf.text.Font.java) 以便声明 Font.DEFAULTSIZE是我喜欢的,但我维护自己的分支......我就是那样奇怪。

关于asp.net - 将 GridView 导出为 PDF 后如何更改 iTextSharp 中的默认字体大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6349847/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com