0

我正在使用 ItextSharp 5.0.5 创建 PDF

使用以下代码

1)

var _with1 = underContent;
_with1.SaveState();
_with1.SetGState(gstate);
_with1.SetColorFill(color);
_with1.BeginText();
_with1.SetFontAndSize(font, txt_Font2);
_with1.SetTextMatrix(30, 30);

//**1**//

_with1.ShowTextAligned(Element.ALIGN_CENTER, watermarkText, txt_X2, txt_Y2, txt_Rotat2);

//**1**//

_with1.EndText();
_with1.RestoreState();

2)

//**2**//

ColumnText.ShowTextAligned(_with1, Element.ALIGN_CENTER, new Phrase(new Chunk(watermarkText, FontFactory.GetFont(@"C:\WINDOWS\Fonts\" + FntNm + ".TTF", txt_Font2, 0))), txt_X2, txt_Y2, txt_Rotat2);

//**2**//

替换//**1**////**2**//我收到以下错误

错误

我需要使用 // 2 // 来生成 iTextsharp 的 BaseFont 不支持的 UNDERLINE

请帮忙!!

4

1 回答 1

2

您正在嵌套文本对象!那是违法的。更新的 iTextSharp 版本会警告您这个问题。

底线:您至少需要删除以下几行:

_with1.BeginText();
_with1.SetFontAndSize(font, txt_Font2);
_with1.SetTextMatrix(30, 30);
_with1.EndText();

使用该ColumnText方法的整个想法是您不必担心自己创建文本对象(如我的书第 3 章中所述)。

于 2013-09-10T15:34:13.207 回答