在iTextSharp中使用Chunks / Phrase的字体问题

时间:2013-12-12 13:50:33

标签: c# itextsharp

我正在填写PDF模板的表单字段,一切都很好。 字段中的单选按钮,复选框和纯文本都使用正确的字体。

我有几个领域需要删除部分文本。

例如:从 Eur22.50 到Eur18.00

所以我假设我需要将文本拆分为块,将不同的字体应用于每个块,并从中创建一个短语。

问题是普通文本(不是删除线)没有使用我指定的字体。

这是我到目前为止的代码:

const Int32 FONT_SIZE = 8;
BaseFont _font = GetFont(BaseFont.CP1257);
Font _standardFont = new Font(_font, FONT_SIZE, Font.DEFAULTSIZE);
Font _strikethroughFont = new Font(_font, FONT_SIZE, Font.STRIKETHRU);

var c1 = new Chunk("From ", _standardFont);
var c2 = new Chunk(originalPrice.ToString("c", _culture), _strikethroughFont);
var c3 = new Chunk(String.Format(" to {0}", finalPrice.ToString("c", _culture)), _standardFont);
AddText("Abonnement_16", new [] {c1,c2,c3}, PdfContentByte.ALIGN_RIGHT);

这种方法似乎不起作用:

private void AddText(String fieldName, IEnumerable<Chunk> textChunks, Int32 align) {
    var pos = _pdfstamper.AcroFields.GetFieldPositions(fieldName)[0].position;
    var phrase = new Phrase();

    foreach (var chunk in textChunks) phrase.Add(chunk);

    var ct = new ColumnText(_content);
    ct.SetSimpleColumn(pos.Left, pos.Bottom, pos.Right, pos.Top, 0, align);
    ct.AddElement(phrase);
    ct.Go();
}

感谢。

0 个答案:

没有答案