列文本不会更改字体类型

时间:2017-07-10 15:14:02

标签: c# pdf itext

我正在尝试更改Column文本的字体,但它不会工作,我没有收到任何错误。文本显示在pdf上,但它不是我将其更改为的文本样式。谁能指出出了什么问题?

我已经看过像我这样的其他问题了,他们都得到了setfontandsize。我也没有在null引用或类似的东西上得到错误。

自定义字体的值与正确的文件相关联。

private void btn_print_Click(object sender, EventArgs e)
{
    PdfReader reader = new PdfReader(@"C:\Users\jacob\Documents\test\3.pdf"); 

    PdfStamper stamper = new PdfStamper(reader, new FileStream(@"C:\Users\jacob\Documents\test\12).pdf", FileMode.Create));
    int x = reader.NumberOfPages;
    int[] a = Enumerable.Range(1,x).ToArray();

    foreach (int n in a)
    {
        BaseFont customfont = FontFactory.GetFont(@"C:\Windows\Fonts\bgothm.ttf", BaseFont.CP1252, true).BaseFont;
        PdfContentByte canvas = stamper.GetOverContent(n); 

        canvas.SetFontAndSize(customfont, 12);
        ColumnText.ShowTextAligned(canvas, Element.ALIGN_LEFT, new Phrase("nooooo"), 36, 540, 0);
    }
    stamper.Close();
} 

1 个答案:

答案 0 :(得分:1)

ColumnText.ShowTextAligned不使用画布的当前字体。相反,它使用其Phrase参数带来的字体;如果您没有为Phrase设置任何特定字体,则会使用一些简单的默认字体。

要使用您选择的字体,请执行

ColumnText.ShowTextAligned(canvas, Element.ALIGN_LEFT, new Phrase("nooooo", new Font(customfont, 12)), 36, 54, 0);

代替。