2012-02-04 41 views
9

我正在嘗試將自定義字體設置爲段落,但我無法使其工作。 我試過設置.Font =,但它只能在尺寸方面工作,但它忽略了字體。你能幫忙嗎?ItextSharp(Itext) - 爲段落設置自定義字體

Paragraph T = new Paragraph(newTempLine); 
iTextSharp.text.Font contentFont = iTextSharp.text.FontFactory.GetFont("Webdings", 12, iTextSharp.text.Font.NORMAL); 
T.Font = contentFont; 
myDocument.Add(T); 

回答

12

設置它the constructor

Font contentFont = FontFactory.GetFont(…); 
Paragraph para = new Paragraph(newTempLine, contentFont); 
+1

你正好有爲什麼這個工程和'T.Font = ...'沒有任何信息? – Nenotlep 2013-10-15 10:42:45

+2

@Nenotlep我不是iText內部的真正權威人士,我不得不揣測源代碼或其他內容,但我猜測設置字體屬性只會改變稍後添加到段落中的文本的字體。 (這是基於'Paragraph'具有'add(Element)'方法的事實,因此它本身似乎是一個複合元素。) – millimoose 2013-10-15 13:09:00

+1

@Nenotlep請記住,PDF不是**聲明標記,它是一個PostScript的衍生物,一種命令式的繪圖語言,爲渲染非常大的文檔而優化,而不必將它們完全保存在內存中。爲了允許流式輸出,iText也不會在內存中構建文檔表示 - 我相信當您將元素添加到文檔時,通常會立即寫出它。因此,您似乎在操縱文檔結構的邏輯表示形式,但流式傳輸可能會通過這種抽象形式泄漏。 – millimoose 2013-10-15 13:17:24