如何更改 ShowTextAligned 的 Itextsharp 字体
How to change Itextsharp fonts for ShowTextAligned
我尝试在创建 PDF 时更改一行的字体,但没有结果。笑话是颜色变了,如果是低级错误请见谅
我尝试了与谷歌搜索不同的方法。
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 水平,直到您确切地知道自己在做什么。我建议你使用中级,而不是低级。
在那种情况下,您将 BaseFont
、字体大小和文本颜色组合到一个 Font
对象中,将此字体添加到 Phrase
对象,然后让 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);
我尝试在创建 PDF 时更改一行的字体,但没有结果。笑话是颜色变了,如果是低级错误请见谅
我尝试了与谷歌搜索不同的方法。
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 水平,直到您确切地知道自己在做什么。我建议你使用中级,而不是低级。
在那种情况下,您将 BaseFont
、字体大小和文本颜色组合到一个 Font
对象中,将此字体添加到 Phrase
对象,然后让 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);