当我设置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);
当文档显示时,它看起来像这样:
如您所见,文本溢出了单元格的边框。我想我只是假设如果单元格是NoWrap,它会填满单元格,然后在它无法显示时停止。也许那是不可能的。
关于如何制作一个永不包裹到更多行的单行标题的任何其他想法?
答案 0 :(得分:6)
而不是单元格上的NoWrap
将FixedHeight
设置为单元格的高度。这将导致单元格溢出内容但不会显示它。
答案 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;
}