2011-06-14 40 views
5

我使用下面的鏈接iTextSharp的方法到GridView導出爲PDF文件:如何在將GridView導出爲PDF後在iTextSharp中更改默認字體大小?

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中全局更改此默認字體及其大小(至少是其大小)?

謝謝!

回答

0

確實。

(但我最初的建議不是它... Font.DEFFAULTSIZE是「靜態最終」,所以...... Derp)。

Err ...我不認爲HTMLWorker的樣式表代碼會讓你設置一個整體的默認字體大小,以爲我沒有用過這麼多。我可能是錯的。你可以通過班級或標籤來設置,但這可能是一個相當的工作...嘿!

我認爲你可以設置「身體」的風格,這將影響其中的一切。除非你對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聲明是對的方式我喜歡,但我維護自己的分支......我很奇怪。

+1

不,這是Java的。 iTextSharp源自iText。你應該覺得很容易翻譯。 – 2011-06-16 17:03:05

-1

C#

Hashtable props = new Hashtable(); 
props.Add(ElementTags.SIZE, "8"); 
0
BaseFont bfTimes = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, false); 
iTextSharp.text.Font font20 = iTextSharp.text.FontFactory.GetFont 
(iTextSharp.text.FontFactory.HELVETICA,20); 
+1

奇怪的是,您「無法完全理解」鏈接的頁面,但您已多次鏈接到該博客。 – 2012-09-21 18:36:12

相關問題