如何使用itextsharp并排放置两个表

时间:2013-12-18 07:35:53

标签: c# asp.net pdf-generation itextsharp

我必须创建一个包含两个表的pdf文件。这两个表应该横向放在文档中。我试过这样,

   var doc1 = new Document(PageSize.A4);
   PdfWriter.GetInstance(doc1, new FileStream(path + "/" + pdf_name + "", FileMode.Create));
            doc1.Open();

  var table1 = new PdfPTable(1); //table1
           table1.HorizontalAlignment = Element.ALIGN_LEFT;
           table1.SpacingBefore = 50;
           table1.DefaultCell.Border = 1;
           table1.WidthPercentage = 40;
            PdfPCell cell = new PdfPCell(new Phrase(student_name, boldTableFont));
           // cell.Border = 1;
           // cell.HorizontalAlignment = 1; //0=Left, 1=Centre, 2=Right
              cell.HorizontalAlignment = Element.ALIGN_CENTER;
            table1.AddCell(cell);
            doc1.Add(table1);


           var table2= new PdfPTable(1); //table2

           table2.DefaultCell.Border = 1;
           table2.HorizontalAlignment = 2;

           table2.SpacingBefore = 50;
           table2.WidthPercentage = 40;

              PdfPCell cell21 = new PdfPCell(new Phrase("success", body));
             cell21.HorizontalAlignment = 1; //0=Left, 1=Centre, 2=Right
             table2.AddCell(cell21);
           doc1.Add(table2);
           doc1.Close();

但第二个表格不在table1的右侧,其中spacingbefore = 50。请帮我找出问题

1 个答案:

答案 0 :(得分:4)

您可能需要查看更新布局以使用列(有关详细信息,请参阅此处):

http://www.mikesdotnetting.com/Article/89/iTextSharp-Page-Layout-with-Columns

如果没有详细了解您的布局,很难说哪种基于列的布局最佳。

或者你可以绝对定位你的表并以这种方式写出来。


作为第三个选项(非常类似于旧的html页面),您可以嵌套这样的表:

PdfPTable outer = new PdfPTable(2);

outer.AddCell(table1);

outer.AddCell(table2);

document.Add(outer);