使用ItextSharp生成PDF时出错

时间:2013-09-10 13:41:49

标签: c# itextsharp

我正在使用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**//我收到以下错误

ERROR

我需要使用// 2 //来生成UNDERLINE,这在iTextsharp的BaseFont中不受支持

请帮助!!

1 个答案:

答案 0 :(得分:2)

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

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

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

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