C# iTextSharp中块/短语的字体问题
我正在填写PDF模板的表单字段,一切都很好。 字段中的单选按钮、复选框和纯文本都可以使用正确的字体 我有几个字段需要删除部分文本 例如:从22.50欧元到18.00欧元 所以我假设我需要将文本分割成块,对每个块应用不同的字体,并从中创建一个短语 问题是普通文本(不是删除线)没有使用我指定的字体 以下是我目前掌握的代码:C# iTextSharp中块/短语的字体问题,c#,itextsharp,C#,Itextsharp,我正在填写PDF模板的表单字段,一切都很好。 字段中的单选按钮、复选框和纯文本都可以使用正确的字体 我有几个字段需要删除部分文本 例如:从22.50欧元到18.00欧元 所以我假设我需要将文本分割成块,对每个块应用不同的字体,并从中创建一个短语 问题是普通文本(不是删除线)没有使用我指定的字体 以下是我目前掌握的代码: const Int32 FONT_SIZE = 8; BaseFont _font = GetFont(BaseFont.CP1257); Font _standardFont
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();
}
private void AddText(字符串字段名、IEnumerable textChunks、Int32 align){
var pos=_pdfstamper.AcroFields.GetFieldPositions(fieldName)[0]。位置;
var短语=新短语();
foreach(文本块中的var chunk)短语。添加(chunk);
var ct=新列文本(_内容);
ct设置简单柱(位置左侧,位置底部,位置右侧,位置顶部,0,对齐);
增补(短语);
ct.Go();
}
谢谢。什么不起作用?请注意,如果内容不符合矩形,则不会向文档中添加任何内容。
Go()
方法的返回值提供了这些信息。删除线部分以正确的字体正确显示。但是前后的文字字体要大得多。啊,没关系。这个可以关闭。它可以正常工作,我在没有设置字体大小的代码中调用了错误的构造函数。