PdfPCell NoWrap = true溢出PdfPTable的宽度

时间:2013-11-25 22:42:49

标签: c# itextsharp

当我设置PdfPCell的属性NoWrap = true时,如果单元格内的文本比表格宽,则它会溢出表格的宽度。我有一个36f的保证金,我设置table.WidthPercentage = 100f,这是正常的。但是如果我在一个带有NoWrap = true的单元格中放入一长串文本,它就会一直到文档的边缘。有没有办法让单元格中的文本超出表格的宽度?

这是我的代码:

customFont = FontFactory.GetFont(defaultFontName, 22, Font.BOLD);
string vehicleName = vehicle.Name;
Phrase vName = new Phrase(vehicleName, customFont);
vName.Leading = 22f;
table = new PdfPTable(1);
table.SpacingAfter = 10f;
table.WidthPercentage = 100f;
cell = new PdfPCell(vName);
cell.Border = 1;
cell.HorizontalAlignment = 1;
cell.NoWrap = true;
cell.Padding = 0;
table.AddCell(cell);
document.Add(table);

当文档显示时,它看起来像这样:

enter image description here

如您所见,文本溢出了单元格的边框。我想我只是假设如果单元格是NoWrap,它会填满单元格,然后在它无法显示时停止。也许那是不可能的。

关于如何制作一个永不包裹到更多行的单行标题的任何其他想法?

2 个答案:

答案 0 :(得分:6)

而不是单元格上的NoWrapFixedHeight设置为单元格的高度。这将导致单元格溢出内容但不会显示它。

答案 1 :(得分:2)

Chris的回答非常有助于剪切细胞内容。以下是我使用Chris提到的方法实现细胞剪切时的经验。我使用的是iTextSharp 4.0.4.0。

我发现NoWrap属性必须始终设置为false ,以便在需要隐藏溢出时能够将文本OR包装到剪辑单元格内容。在下面的代码中,基于wrapText的值,单元格内容将被剪裁(wrapText = false)或wrap(wrapText = true)。我使用的是iTextSharp版本4.0.4.0。

 //set the NoWrap to false, irrespective of whether you want to clip or wrap text
 cellEmpID.NoWrap =  false;
 cellAddress1.NoWrap = false;
 cellAddress2.NoWrap = false;

 //fixed height will clip cell content provided NoWrap is set to false.  
 //if NoWrap is set to true then text will overflow into next cell with fixed
 // height, which will make your pdf document look not-so-good.

 if (!wrapText)  
      {
        // set fixed height on all cells
        cellEmpID.FixedHeight = 10f;
        cellAddress1.FixedHeight = 10f;
        cellAddress2.FixedHeight =  10f;
     }