2015-10-26 36 views
1

在itextsharp中,我生成一個以表格爲特色的pdf-該表格內部應該包含一個文本字符串,然後是另一個嵌套表格。內表有一個邊框。iTextSharp-將短語和表放在一行上

 Font nameFont = FontFactory.GetFont("Arial", 10); 
     PdfPTable pdfpTable = new PdfPTable(1); 
     pdfpTable.HorizontalAlignment = Element.ALIGN_LEFT; 
     pdfpTable.WidthPercentage = 100f; 
     pdfpTable.TotalWidth = 250f; 
     pdfpTable.LockedWidth = true; 
     PdfPCell pdfpCell; 

     var vouchertable = new PdfPTable(11); 
     vouchertable.TotalWidth = 100f; 
     vouchertable.LockedWidth = true; 
     var tableBorder = Rectangle.TOP_BORDER | Rectangle.RIGHT_BORDER | Rectangle.BOTTOM_BORDER | Rectangle.LEFT_BORDER; 
     var code = "10162/00012"; 
     foreach (var s in code) 
     { 
      var vouchercell = new PdfPCell(new Paragraph(s.ToString(), nameFont)); 
      vouchercell.Border = tableBorder; 
      vouchercell.HorizontalAlignment = Element.ALIGN_LEFT; 
      vouchertable.AddCell(vouchercell); 
     } 
     vouchertable.HorizontalAlignment = Element.ALIGN_LEFT; 

     var chunk = new Chunk("Referral Code: ", nameFont); 
     pdfpCell = new PdfPCell(); 
     pdfpCell.AddElement(chunk); 
     pdfpCell.AddElement(vouchertable); 
     pdfpTable.AddCell(pdfpCell); 

的「推薦碼」塊,並在盒數(這是一個內部表)必須在同一行,但我不能工作,如何不添加一個換行符。

output http://oozamaflips.net/dev/images/293.PNG

回答

0

一種選擇是有兩個PdfPCell!而非一個明確設置每個單元的屬性創建主PdfPTable

PdfPTable pdfpTable = new PdfPTable(2); 

// your code above 

pdfpTable.DefaultCell.Border = PdfPCell.NO_BORDER; 
PdfPCell cell = new PdfPCell(new Phrase("Referral Code: ", nameFont)) 
{ 
    Border = PdfPCell.NO_BORDER, 
    HorizontalAlignment = Element.ALIGN_RIGHT 
}; 
pdfpTable.AddCell(cell); 
cell = new PdfPCell(vouchertable) { Border = PdfPCell.NO_BORDER }; 
pdfpTable.AddCell(cell); 

結果

enter image description here

+0

這是'有點'的答案 - '排序',因爲真正的解決方案有一些額外的行,所以我不能在原始表中使用兩個單元格 - 我所能做的就是製作一個包含兩個單元格的表格,並將它嵌入主表格中 - 這非常出色!謝謝。 – UglyTeapot

相關問題