2012-02-04 79 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