本文整理汇总了C#中iTextSharp.text.Chunk.SetBackground方法的典型用法代码示例。如果您正苦于以下问题:C# Chunk.SetBackground方法的具体用法?C# Chunk.SetBackground怎么用?C# Chunk.SetBackground使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类iTextSharp.text.Chunk
的用法示例。
在下文中一共展示了Chunk.SetBackground方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Write
// ===========================================================================
public void Write(Stream stream) {
// step 1
using (Document document = new Document()) {
// step 2
PdfWriter.GetInstance(document, stream).InitialLeading = 16;
// step 3
document.Open();
// add the ID in another font
Font font = new Font(Font.FontFamily.HELVETICA, 6, Font.BOLD, BaseColor.WHITE);
// step 4
using (var c = AdoDB.Provider.CreateConnection()) {
c.ConnectionString = AdoDB.CS;
using (DbCommand cmd = c.CreateCommand()) {
cmd.CommandText =
"SELECT country,id FROM film_country ORDER BY country";
c.Open();
using (var r = cmd.ExecuteReader()) {
while (r.Read()) {
var country = r.GetString(0);
var ID = r.GetString(1);
document.Add(new Chunk(country));
document.Add(new Chunk(" "));
Chunk id = new Chunk(ID, font);
// with a background color
id.SetBackground(BaseColor.BLACK, 1f, 0.5f, 1f, 1.5f);
// and a text rise
id.SetTextRise(6);
document.Add(id);
document.Add(Chunk.NEWLINE);
}
}
}
}
}
}
示例2: CreateTaggedPdf16
public void CreateTaggedPdf16() {
InitializeDocument("16");
Paragraph p = new Paragraph();
Chunk chunk = new Chunk("Hello tagged world!");
chunk.SetBackground(new BaseColor(255, 0, 255));
chunk.Font = FontFactory.GetFont("TimesNewRoman", 20, BaseColor.ORANGE);
chunk.SetUnderline(BaseColor.PINK, 1.2f, 1, 1, 1, 0);
p.Add(chunk);
PdfDiv div = new PdfDiv();
div.AddElement(p);
document.Add(div);
document.Add(new Paragraph("This paragraph appears between 2 div blocks"));
div = new PdfDiv();
div.AddElement(new Paragraph(text));
document.Add(div);
document.Close();
int[] nums = new int[] {48, 7};
CheckNums(nums);
CompareResults("16");
}
示例3: CreateTaggedPdf15
public void CreateTaggedPdf15() {
InitializeDocument("15");
Paragraph p = new Paragraph();
Chunk chunk = new Chunk("Hello tagged world!");
chunk.SetBackground(new BaseColor(255, 0, 255));
chunk.Font = FontFactory.GetFont("TimesNewRoman", 20, BaseColor.ORANGE);
chunk.SetUnderline(BaseColor.PINK, 1.2f, 1, 1, 1, 0);
p.Add(chunk);
document.Add(p);
document.Close();
int[] nums = new int[] {3};
CheckNums(nums);
CompareResults("15");
}
示例4: GetChunk
public static Chunk GetChunk(Properties attributes)
{
Chunk chunk = new Chunk();
chunk.Font = FontFactory.GetFont(attributes);
String value;
value = attributes[ElementTags.ITEXT];
if (value != null) {
chunk.Append(value);
}
value = attributes[ElementTags.LOCALGOTO];
if (value != null) {
chunk.SetLocalGoto(value);
}
value = attributes[ElementTags.REMOTEGOTO];
if (value != null) {
String page = attributes[ElementTags.PAGE];
if (page != null) {
chunk.SetRemoteGoto(value, int.Parse(page));
}
else {
String destination = attributes[ElementTags.DESTINATION];
if (destination != null) {
chunk.SetRemoteGoto(value, destination);
}
}
}
value = attributes[ElementTags.LOCALDESTINATION];
if (value != null) {
chunk.SetLocalDestination(value);
}
value = attributes[ElementTags.SUBSUPSCRIPT];
if (value != null) {
chunk.SetTextRise(float.Parse(value, System.Globalization.NumberFormatInfo.InvariantInfo));
}
value = attributes[Markup.CSS_KEY_VERTICALALIGN];
if (value != null && value.EndsWith("%")) {
float p = float.Parse(value.Substring(0, value.Length - 1), System.Globalization.NumberFormatInfo.InvariantInfo) / 100f;
chunk.SetTextRise(p * chunk.Font.Size);
}
value = attributes[ElementTags.GENERICTAG];
if (value != null) {
chunk.SetGenericTag(value);
}
value = attributes[ElementTags.BACKGROUNDCOLOR];
if (value != null) {
chunk.SetBackground(Markup.DecodeColor(value));
}
return chunk;
}
示例5: printRingForUser
//.........这里部分代码省略.........
Paragraph p = new Paragraph();
List<Paragraph> allDogsInClass = new List<Paragraph>();
foreach (DataRow dogRow in dogsList.Tables[0].Rows)
{
var dogLho = Convert.ToInt32(dogRow["Lho"]);
int DogID = Convert.ToInt32(dogRow["DogID"]);
DefaultHandler = Convert.ToInt32(dogRow["DefaultHandler"]);
if (DefaultHandler == 0) DefaultHandler = -1;
if ((DefaultHandler == -1 && currentUser.UserID == UserID) ||
(DefaultHandler == UserID)
)
{
if (countDogs == 0)
{
cell = new PdfPCell(tmpCells[0]);
cell.BorderWidth = 0;
cell.HorizontalAlignment = PdfPCell.ALIGN_RIGHT;
classDetailsTable.AddCell(cell);
var namePara = new Paragraph();
namePara.Add(tmpCells[1]);
namePara.Add(new Phrase(new Chunk(lhoInd, lhoFontBold)));
p.Add(namePara);
}
if (!dogsRunningToday.Contains(DogID))
{
dogsRunningToday.Add(DogID);
}
String dogName = dogRow["DogName"].ToString();
if (dogName.Length == 0)
{
dogName = dogRow["KCName"].ToString();
}
var chunk = new Chunk(" ", dogDetailsInClass);
chunk.SetBackground(new Color(System.Drawing.ColorTranslator.FromHtml(dogRow["DogColour"].ToString())));
var dogPara = new Paragraph();
dogPara.Add(new Phrase(chunk));
if (TeamPairsManager.isMultiDog( EntryType ))
{
pairsTeams.Add(new TeamPairsTrioDto
{
ClassId = ClassID,
ClassNo = ClassNo,
DogId = DogID,
DogName = dogName,
RO = -1
});
}
dogPara.Add(new Phrase(new Chunk(String.Format(" [{1}] {0}", Fpp.Core.Utils.TitleCaseString(dogName), dogRow["RO"]), dogDetailsInClass)));
dogPara.Add(new Phrase(new Chunk(String.Format("{0}", (dogLho == 0 ? "" : " (LHO)")), font8)));
dogPara.Add(Chunk.NEWLINE);
int AltHandler = Convert.ToInt32(dogRow["AltHandler"]);
String HandlerName = "";
if (AltHandler > 0)
{
User u = new User(AltHandler);
HandlerName = u.Name;
dogPara.Add(new Phrase(new Chunk(String.Format("Handler:{0}", Fpp.Core.Utils.TitleCaseString(HandlerName)), dogInClass)));
}
allDogsInClass.Add(dogPara);
countDogs++;
}
else
{
示例6: Apply
/**
*
* @param c the Chunk to apply CSS to.
* @param t the tag containing the chunk data
* @return the styled chunk
*/
virtual public Chunk Apply(Chunk c, Tag t)
{
Font f = ApplyFontStyles(t);
float size = f.Size;
String value = null;
IDictionary<String, String> rules = t.CSS;
foreach (KeyValuePair<String, String> entry in rules)
{
String key = entry.Key;
value = entry.Value;
if (Util.EqualsIgnoreCase(CSS.Property.FONT_STYLE, key)) {
if (Util.EqualsIgnoreCase(CSS.Value.OBLIQUE, value)) {
c.SetSkew(0, 12);
}
} else if (Util.EqualsIgnoreCase(CSS.Property.LETTER_SPACING, key)) {
String letterSpacing = entry.Value;
float letterSpacingValue = 0f;
if (utils.IsRelativeValue(value)) {
letterSpacingValue = utils.ParseRelativeValue(letterSpacing, f.Size);
} else if (utils.IsMetricValue(value)) {
letterSpacingValue = utils.ParsePxInCmMmPcToPt(letterSpacing);
}
c.SetCharacterSpacing(letterSpacingValue);
} else if (Util.EqualsIgnoreCase(CSS.Property.XFA_FONT_HORIZONTAL_SCALE, key)) {
// only % allowed; need a catch block NumberFormatExc?
c.SetHorizontalScaling(
float.Parse(value.Replace("%", ""))/100);
}
}
// following styles are separate from the for each loop, because they are based on font settings like size.
if (rules.TryGetValue(CSS.Property.VERTICAL_ALIGN, out value))
{
if (Util.EqualsIgnoreCase(CSS.Value.SUPER, value)
|| Util.EqualsIgnoreCase(CSS.Value.TOP, value)
|| Util.EqualsIgnoreCase(CSS.Value.TEXT_TOP, value)) {
c.SetTextRise((float) (size/2 + 0.5));
} else if (Util.EqualsIgnoreCase(CSS.Value.SUB, value)
|| Util.EqualsIgnoreCase(CSS.Value.BOTTOM, value)
|| Util.EqualsIgnoreCase(CSS.Value.TEXT_BOTTOM, value)) {
c.SetTextRise(-size/2);
} else {
c.SetTextRise(utils.ParsePxInCmMmPcToPt(value));
}
}
String xfaVertScale;
if (rules.TryGetValue(CSS.Property.XFA_FONT_VERTICAL_SCALE, out xfaVertScale))
{
if (xfaVertScale.Contains("%"))
{
size *= float.Parse(xfaVertScale.Replace("%", ""))/100;
c.SetHorizontalScaling(100/float.Parse(xfaVertScale.Replace("%", "")));
}
}
if (rules.TryGetValue(CSS.Property.TEXT_DECORATION, out value)) {
String[] splitValues = new Regex(@"\s+").Split(value);
foreach (String curValue in splitValues) {
if (Util.EqualsIgnoreCase(CSS.Value.UNDERLINE, curValue)) {
c.SetUnderline(0.75f, -size/8f);
}
if (Util.EqualsIgnoreCase(CSS.Value.LINE_THROUGH, curValue)) {
c.SetUnderline(0.75f, size/4f);
}
}
}
if (rules.TryGetValue(CSS.Property.BACKGROUND_COLOR, out value))
{
c.SetBackground(HtmlUtilities.DecodeColor(value));
}
f.Size = size;
c.Font = f;
float? leading = null;
value = null;
if (rules.TryGetValue(CSS.Property.LINE_HEIGHT, out value)) {
if (utils.IsNumericValue(value)) {
leading = float.Parse(value) * c.Font.Size;
} else if (utils.IsRelativeValue(value)) {
leading = utils.ParseRelativeValue(value, c.Font.Size);
} else if (utils.IsMetricValue(value)) {
leading = utils.ParsePxInCmMmPcToPt(value);
}
}
if (leading != null) {
c.setLineHeight((float)leading);
}
return c;
}
示例7: Apply
/**
*
* @param c the Chunk to apply CSS to.
* @param t the tag containing the chunk data
* @return the styled chunk
*/
public Chunk Apply(Chunk c, Tag t)
{
Font f = ApplyFontStyles(t);
float size = f.Size;
String value = null;
IDictionary<String, String> rules = t.CSS;
foreach (KeyValuePair<String, String> entry in rules)
{
String key = entry.Key;
value = entry.Value;
if (Util.EqualsIgnoreCase(CSS.Property.FONT_STYLE, key)) {
if (Util.EqualsIgnoreCase(CSS.Value.OBLIQUE, value))
{
c.SetSkew(0, 12);
}
} else if (Util.EqualsIgnoreCase(CSS.Property.LETTER_SPACING, key)) {
c.SetCharacterSpacing(utils.ParsePxInCmMmPcToPt(value));
} else if (Util.EqualsIgnoreCase(CSS.Property.XFA_FONT_HORIZONTAL_SCALE, key)) {
// only % allowed; need a catch block NumberFormatExc?
c.SetHorizontalScaling(
float.Parse(value.Replace("%", ""))/100);
}
}
// following styles are separate from the for each loop, because they are based on font settings like size.
if (rules.TryGetValue(CSS.Property.VERTICAL_ALIGN, out value))
{
if (Util.EqualsIgnoreCase(CSS.Value.SUPER, value)
|| Util.EqualsIgnoreCase(CSS.Value.TOP, value)
|| Util.EqualsIgnoreCase(CSS.Value.TEXT_TOP, value)) {
c.SetTextRise((float) (size/2 + 0.5));
} else if (Util.EqualsIgnoreCase(CSS.Value.SUB, value)
|| Util.EqualsIgnoreCase(CSS.Value.BOTTOM, value)
|| Util.EqualsIgnoreCase(CSS.Value.TEXT_BOTTOM, value)) {
c.SetTextRise(-size/2);
} else {
c.SetTextRise(utils.ParsePxInCmMmPcToPt(value));
}
}
String xfaVertScale;
if (rules.TryGetValue(CSS.Property.XFA_FONT_VERTICAL_SCALE, out xfaVertScale))
{
if (xfaVertScale.Contains("%"))
{
size *= float.Parse(xfaVertScale.Replace("%", ""))/100;
c.SetHorizontalScaling(100/float.Parse(xfaVertScale.Replace("%", "")));
}
}
if (rules.TryGetValue(CSS.Property.TEXT_DECORATION, out value))
{
// Restriction? In html a underline and a line-through is possible on one piece of text. A Chunk can set an underline only once.
if (Util.EqualsIgnoreCase(CSS.Value.UNDERLINE, value))
{
c.SetUnderline(0.75f, -size/8f);
}
if (Util.EqualsIgnoreCase(CSS.Value.LINE_THROUGH, value))
{
c.SetUnderline(0.75f, size/4f);
}
}
if (rules.TryGetValue(CSS.Property.BACKGROUND_COLOR, out value))
{
c.SetBackground(HtmlUtilities.DecodeColor(value));
}
f.Size = size;
c.Font = f;
return c;
}
示例8: DrawBlockString
/// <summary>
/// Draws a block string
/// </summary>
/// <param name="txt"></param>
/// <param name="x"></param>
/// <param name="width"></param>
/// <param name="fontAttrs"></param>
/// <param name="textAttrs"></param>
public void DrawBlockString(string txt, float x, float width,
XmlAttributeCollection fontAttrs, XmlAttributeCollection textAttrs)
{
iTextSharp.text.Font font = CreateFontFromAttribute(fontAttrs);
int align = PDFDrawItextSharpHelper.Align(
Moon.PDFDraw.Helper.GetAttributeValue(AlignAttributeConstant, textAttrs, "Near"));
iTextSharp.text.Chunk chunk = new iTextSharp.text.Chunk(txt, font);
//20130605 :: mellorasinxelas
BlockStyle backgroundDef = new BlockStyle( textAttrs );//load text background values.
if(backgroundDef.BackgroundColor != null){
chunk.SetBackground( new BaseColor(backgroundDef.BackgroundColor.Value) );//sets the same backcolor to the text.
}
//----
float height = Moon.PDFDraw.Helper.GetFloatAttributeValue( "height", textAttrs, font.Size + (font.Size / 2));
DrawBlockString(chunk, x, width, align, height, backgroundDef);
}
示例9: printRingForUser
//.........这里部分代码省略.........
int countDogs = 0;
int DefaultHandler;
Paragraph p = new Paragraph();
foreach (DataRow dogRow in dogsList.Tables[0].Rows)
{
int DogID = Convert.ToInt32(dogRow["DogID"]);
DefaultHandler = Convert.ToInt32(dogRow["DefaultHandler"]);
if (DefaultHandler == 0) DefaultHandler = -1;
if ((DefaultHandler == -1 && currentUser.UserID == UserID) ||
(DefaultHandler == UserID)
)
{
if (countDogs == 0)
{
cell = new PdfPCell(tmpCells[0]);
cell.BorderWidth = 0;
cell.HorizontalAlignment = PdfPCell.ALIGN_RIGHT;
classDetailsTable.AddCell(cell);
p.Add(tmpCells[1]);
p.Add(Chunk.NEWLINE);
}
if (!dogsRunningToday.Contains(DogID))
{
dogsRunningToday.Add(DogID);
}
String img = "<img src='data:image/gif;base64," + CreateImage(dogRow["DogColour"].ToString()) + "' />";
String dogName = dogRow["DogName"].ToString();
if (dogName.Length == 0)
{
dogName = dogRow["KCName"].ToString();
}
var chunk = new Chunk(" ", dogDetailsInClass);
chunk.SetBackground(new Color( System.Drawing.ColorTranslator.FromHtml(dogRow["DogColour"].ToString()) ));
p.Add(new Phrase(chunk));
p.Add(new Phrase(new Chunk(String.Format(" [{1}] {0}", dogName, dogRow["RO"]), dogDetailsInClass)));
p.Add(Chunk.NEWLINE);
int AltHandler = Convert.ToInt32(dogRow["AltHandler"]);
String HandlerName = "";
if (AltHandler > 0)
{
User u = new User(AltHandler);
HandlerName = u.Name;
html += "<div class='altHandler'>Handler:" + AltHandler + "</div>";
p.Add(Chunk.NEWLINE);
p.Add(new Phrase(new Chunk(String.Format("Handler:", AltHandler),dogInClass)));
}
countDogs++;
}
else
{
if (defaultUsers != null && defaultUsers.IndexOf(DefaultHandler) == -1)
{
defaultUsers.Add(DefaultHandler);
}
}
}
if (countDogs == 0)
{
cell = new PdfPCell(new Phrase(new Chunk(ringRow["ClsNo"].ToString(), dogNotInClass)));
cell.BorderWidth = 0;
cell.HorizontalAlignment = PdfPCell.ALIGN_RIGHT;
classDetailsTable.AddCell(cell);
示例10: Read
protected override Stream Read()
{
Document doc = new Document(PageSize.A4, 50, 50, 50, 50);
doc.AddTitle(Title);
doc.AddCreationDate();
doc.AddCreator("iTextSharp");
doc.AddAuthor("文化中国");
doc.AddSubject(w.Excerpt);
doc.AddKeywords(w.Tags);
using (MemoryStream stream = new MemoryStream())
{
PdfWriter writer = PdfWriter.GetInstance(doc, stream);
writer.SetEncryption(true, null, null, 0);
writer.PageEvent = new HeaderFooterPdfPageEventHelper();
doc.Open();
Paragraph p = new Paragraph(Title, font);
p.Alignment = 1;
doc.Add(p);
MatchCollection matches = regex.Matches(w.Script.Text);
foreach (Match m in matches)
{
Chunk chunk = new Chunk(m.Groups["cont"].Value);
switch (m.Groups["tag"].Value.ToLower())
{
case "h1":
font.Color = BaseColor.WHITE;
chunk.SetBackground(BaseColor.DARK_GRAY);
break;
case "p":
font.Color = BaseColor.BLACK;
break;
}
chunk.Font = font;
p = new Paragraph(chunk);
p.SetLeading(0.0f, 2.0f);
p.FirstLineIndent = 20f;
p.Alignment = 0;
doc.Add(p);
}
doc.Close();
return new MemoryStream(stream.GetBuffer());
}
}
示例11: Genera
public static void Genera(string sourcePath,string content)
{
sourcePath = HttpContext.Current.Server.MapPath(sourcePath);
//定义一个Document,并设置页面大小为A4,竖向
iTextSharp.text.Document doc = new Document(PageSize.A4);
try
{
//写实例
PdfWriter.GetInstance(doc, new FileStream(sourcePath, FileMode.Create));
//打开document
doc.Open();
//载入字体
BaseFont baseFont = BaseFont.CreateFont(
"C:\\WINDOWS\\FONTS\\SIMHEI.TTF", //黑体
BaseFont.IDENTITY_H, //横向字体
BaseFont.NOT_EMBEDDED);
iTextSharp.text.Font font = new iTextSharp.text.Font(baseFont, 9);
//写入一个段落, Paragraph
doc.Add(new Paragraph("第一段:" + content, font));
doc.Add(new Paragraph("这是第二段 !", font));
#region 图片
//以下代码用来添加图片,此时图片是做为背景加入到pdf文件当中的:
Stream inputImageStream = new FileStream(HttpContext.Current.Server.MapPath("~/images/logo.jpg"), FileMode.Open, FileAccess.Read, FileShare.Read);
iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(inputImageStream);
image.SetAbsolutePosition(0, 0);
image.Alignment = iTextSharp.text.Image.UNDERLYING; //这里可以设定图片是做为背景还是做为元素添加到文件中
doc.Add(image);
#endregion
#region 其他元素
doc.Add(new Paragraph("Hello World"));
//另起一行。有几种办法建立一个段落,如:
Paragraph p1 = new Paragraph(new Chunk("This is my first paragraph.\n", FontFactory.GetFont(FontFactory.HELVETICA, 12)));
Paragraph p2 = new Paragraph(new Phrase("This is my second paragraph.", FontFactory.GetFont(FontFactory.HELVETICA, 12)));
Paragraph p3 = new Paragraph("This is my third paragraph.", FontFactory.GetFont(FontFactory.HELVETICA, 12));
//所有有些对象将被添加到段落中:
p1.Add("you can add string here\n\t");
p1.Add(new Chunk("you can add chunks \n")); p1.Add(new Phrase("or you can add phrases.\n"));
doc.Add(p1); doc.Add(p2); doc.Add(p3);
//创建了一个内容为“hello World”、红色、斜体、COURIER字体、尺寸20的一个块:
Chunk chunk = new Chunk("创建了一个内容为“hello World”、红色、斜体、COURIER字体、尺寸20的一个块", FontFactory.GetFont(FontFactory.COURIER, 20, iTextSharp.text.Font.COURIER, new iTextSharp.text.Color(255, 0, 0)));
doc.Add(chunk);
//如果你希望一些块有下划线或删除线,你可以通过改变字体风格简单做到:
Chunk chunk1 = new Chunk("This text is underlined", FontFactory.GetFont(FontFactory.HELVETICA, 12, iTextSharp.text.Font.UNDEFINED));
Chunk chunk2 = new Chunk("This font is of type ITALIC | STRIKETHRU", FontFactory.GetFont(FontFactory.HELVETICA, 12, iTextSharp.text.Font.ITALIC | iTextSharp.text.Font.STRIKETHRU));
//改变块的背景
chunk2.SetBackground(new iTextSharp.text.Color(0xFF, 0xFF, 0x00));
//上标/下标
chunk1.SetTextRise(5);
doc.Add(chunk1);
doc.Add(chunk2);
//外部链接示例:
Anchor anchor = new Anchor("website", FontFactory.GetFont(FontFactory.HELVETICA, 12, iTextSharp.text.Font.UNDEFINED, new iTextSharp.text.Color(0, 0, 255)));
anchor.Reference = "http://itextsharp.sourceforge.net";
anchor.Name = "website";
//内部链接示例:
Anchor anchor1 = new Anchor("This is an internal link\n\n");
anchor1.Name = "link1";
Anchor anchor2 = new Anchor("Click here to jump to the internal link\n\f");
anchor2.Reference = "#link1";
doc.Add(anchor); doc.Add(anchor1); doc.Add(anchor2);
//排序列表示例:
List list = new List(true, 20);
list.Add(new ListItem("First line"));
list.Add(new ListItem("The second line is longer to see what happens once the end of the line is reached. Will it start on a new line?"));
list.Add(new ListItem("Third line"));
doc.Add(list);
//文本注释:
Annotation a = new Annotation("authors", "Maybe its because I wanted to be an author myself that I wrote iText.");
doc.Add(a);
//包含页码没有任何边框的页脚。
iTextSharp.text.HeaderFooter footer = new iTextSharp.text.HeaderFooter(new Phrase("This is page: "), true);
footer.Border = iTextSharp.text.Rectangle.NO_BORDER;
doc.Footer = footer;
//Chapter对象和Section对象自动构建一个树:
iTextSharp.text.Font f1 = new iTextSharp.text.Font();
f1.SetStyle(iTextSharp.text.Font.BOLD);
Paragraph cTitle = new Paragraph("This is chapter 1", f1);
Chapter chapter = new Chapter(cTitle, 1);
Paragraph sTitle = new Paragraph("This is section 1 in chapter 1", f1);
Section section = chapter.AddSection(sTitle, 1);
doc.Add(chapter);
//构建了一个简单的表:
Table aTable = new Table(4, 4);
aTable.AutoFillEmptyCells = true;
aTable.AddCell("2.2", new System.Drawing.Point(2, 2));
aTable.AddCell("3.3", new System.Drawing.Point(3, 3));
aTable.AddCell("2.1", new System.Drawing.Point(2, 1));
aTable.AddCell("1.3", new System.Drawing.Point(1, 3));
//.........这里部分代码省略.........