C# 如何更改ShowTextAligned的Itextsharp字体
我尝试在创建PDF时更改一行的字体,但没有结果。笑话是颜色的变化,如果是一些愚蠢的错误 我尝试了不同于谷歌疯狂搜索的方法C# 如何更改ShowTextAligned的Itextsharp字体,c#,itext,C#,Itext,我尝试在创建PDF时更改一行的字体,但没有结果。笑话是颜色的变化,如果是一些愚蠢的错误 我尝试了不同于谷歌疯狂搜索的方法 var bf = BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); pdfContentByte.SetColorFill(BaseColor.RED); pdfContentByte.SetFontAndSize(bf, 15); pdfConten
var bf = BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
pdfContentByte.SetColorFill(BaseColor.RED);
pdfContentByte.SetFontAndSize(bf, 15);
pdfContentByte.BeginText();
ColumnText.ShowTextAligned(pdfContentByte, Element.ALIGN_LEFT, new Phrase(ProjNr), 60, 130, 0);
pdfContentByte.EndText();
我只想更改不同类型文本的字体您的代码混合了API级别 当您直接调用
PdfContentByte
方法时,您使用的是最低的API级别,直接将指令写入页面内容流
另一方面,在调用ColumnText.ShowTextAligned
时,您处于中等API级别。在这个级别,iText类(如ColumnText
)在底层页面内容流中创建所有必需的指令;实际上,直接编写的指令会干扰由ColumnText
编写的指令,并导致指令序列无效
您确实应该一次只停留在一个API级别,直到您确切地知道自己在做什么。我建议你使用中等水平,而不是低水平
在这种情况下,将基本字体
、字体大小和文本颜色组合到字体
对象中,将此字体添加到短语
对象中,然后让iText完成所有工作:
var bf = BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
Font font = new Font(bf, 15, Font.NORMAL, BaseColor.RED);
ColumnText.ShowTextAligned(pdfContentByte, Element.ALIGN_LEFT, new Phrase(ProjNr, font), 60, 130, 0);
非常感谢,也很好的解释了!