为什么我不能设置短语(或段落)的字体?

时间:2014-09-11 16:53:21

标签: c# fonts itext phrase

我从itextsharp开始,并想知道如果我在构造之后设置短语的字体是否有任何原因,它是不起作用的。 有什么理由,我会错过什么吗?

 iTextSharp.text.Font f = PdfFontFactory.GetComic();
 f.SetStyle(PdfFontStyle.BOLD);
 Color c = Color.DarkRed;
 f.SetColor(c.R,c.G,c.B);
 f.Size = 20;
 Document document = new Document();
 try
 {
    PdfWriter.GetInstance(document, new System.IO.FileStream("PhraseTest.pdf",   FileMode.Create));
    document.SetPageSize(PageSize.A4);
    document.Open();
    Phrase titreFormules = new Phrase("Nos formules",f); //THIS WORKS
    // titreFormules.Font = f; // THIS DOESN'T WORK!
    document.Add(titreFormules);
    document.Close();

1 个答案:

答案 0 :(得分:1)

这在我的书中有记载。

  • Chunk是文本的原子部分,因为Chunk中的所有文本都具有相同的字体系列,字体大小,字体颜色......
  • PhraseChunk个对象的集合,因此Phrase可以包含使用不同字体的不同“原子”文本。

在您的示例中,"Nos formules"将以Helvetica编写。在之后更改的字体 Chunk,文本"Nos formules"已添加到Phrase。因为您没有向{{1}添加任何其他内容},从不使用字体“漫画”。

当我回答问题iText - PdfPTable doesn't show Cyrillic(Russian) symbols时,这也是我的意思:

  

当您使用titreFormules时,在设置字体后,您为添加的所有内容更改setFont()的字体。