我正在填写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();
}
感谢。