1
我有一个函数来中继在PDF领域的顶部邮票作为填充richtext字段。PDF columtext缩小到适合使用iText或iTextSharp
public void FillRichTextField(AcroFields pdfForm, PdfStamper pdfStamper, string fieldName, string value)
{
System.Collections.Generic.IList<AcroFields.FieldPosition> pos = pdfForm.GetFieldPositions(fieldName);
//tell itextSharp to overlay this content
PdfContentByte contentByte = pdfStamper.GetOverContent(pos[0].page);
//create a new paragraph
Paragraph par = new Paragraph();
//parse html
var mh = new SampleHandler();
//Bind a reader to our text
using (TextReader sr = new StringReader(value))
{
//Parse
XMLWorkerHelper.GetInstance().ParseXHtml(mh, sr);
}
for (int k = 0; k < mh.elements.Count; k++)
{
par.Add((IElement)mh.elements[k]);
}
//create a ColumnText to hold the paragraph and set position to the position of the field
ColumnText ct = new ColumnText(contentByte);
ct.SetSimpleColumn(pos[0].position.Left, pos[0].position.Bottom, pos[0].position.Right, pos[0].position.Top);
ct.AddElement(par);
int status = ct.Go();
bool fits = !ColumnText.HasMoreText(status);
}
段落得到切断,所以我想调整大小/重新调整该段以适应ColumnText,似乎没有被这样做的一种方式。由于段落包含具有自己字体的richtext数据,因此我无法启动新的字体。我想我最好的选择是将该段落转换为可缩放的图片,然后调整大小以适合?
或者,如果有更好的填充richtext字段的方法,以便所有文本符合维护的样式,请让我知道。
你说你*填充richtext字段*。对我来说,它看起来更像是将文字印到常规页面内容的位置上。填充字段通常涉及将内容添加到字段本身及其小部件注释中... – mkl
我更改了语言,您是正确的。我将文本加盖到richtext字段上,因为我认为填充richtext字段没有更好的方法。让我知道如果我错了。谢谢你指出。 – user1541389
*我认为填充richtext字段没有更好的方法。 - 理论上应该有,但我还没有认真对待这个任务。这就是说,如果*填充*的方式对你来说可以,那么可以调整坐标系来使事情合适。从本质上讲,您已经预留了一个带有丰富文本字段的区域,并且希望在那里制作一些丰富的文本内容,对吗? – mkl