我们正在使用ITextSharp,原因是我不明白,我们还没有这本书,而且我有一个烦人的问题,我很感激帮助。
我正在使用页脚,我无法按照我的意愿对齐它。
我所拥有的函数采用了一个字符串列表,但它通常是每行所需的4个字符串。它不像itextsharp那样可以处理带有换行符的字符串,所以这就是列表的原因。
现在这对我来说没有正确定位,第一个字符串看起来没问题,但是第二个字符串有点长,它在文档外面的一半就像第三个字符串一样,即使你有1个,第四个字符串也不可见剩下几厘米的空间。
感谢您的帮助!
public PdfTemplate AddPageText(IList<string> stringList, PdfWriter writer)
{
var cb = writer.DirectContent;
PdfTemplate footerTemplate = cb.CreateTemplate(450, 120); //55);
footerTemplate.BeginText();
BaseFont bf2 = BaseFont.CreateFont(BaseFont.TIMES_ITALIC, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);
footerTemplate.SetFontAndSize(bf2, 9);
footerTemplate.SetColorStroke(BaseColor.DARK_GRAY);
footerTemplate.SetColorFill(BaseColor.GRAY);
footerTemplate.SetLineWidth(3);
footerTemplate.LineTo(50, footerTemplate.YTLM);
int y = 10;
foreach (string text in stringList)
{
float widthoftext = 500.0f - bf2.GetWidthPoint(text, 9);
footerTemplate.ShowTextAligned(PdfContentByte.ALIGN_RIGHT, text, widthoftext, 50 - y, 0);
y += y;
}
footerTemplate.EndText();
return footerTemplate;
}
答案 0 :(得分:1)
如果您正在进行字符串放置并使用DirectContent,那么您负责内容。在这种情况下,您需要计算字符串矩形并相应地换行。
但是,我会建议使用带有单元格的表格来处理文本。表格包装文本并处理您正在处理的一些问题。