我正在使用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 //来生成UNDERLINE,这在iTextsharp的BaseFont中不受支持
请帮助!!
答案 0 :(得分:2)
您正在嵌套文本对象!那是违法的。最新的iTextSharp版本警告您这个问题。
底线:您需要删除至少以下行:
_with1.BeginText();
_with1.SetFontAndSize(font, txt_Font2);
_with1.SetTextMatrix(30, 30);
_with1.EndText();
使用ColumnText
方法的整个想法是,您不必担心自己创建文本对象(如本书第3章所述)。