我使用iTextSharp v5.5.6
我正在创建一个大表。 为了在我的布局中保持一致,我想使用DefaultCell类来设置一些默认设置,如字体,填充和对齐。 我没有做正确的事情,因为设置不适用于我的单元格。
以下是一些代码:
var table = new PdfPTable(2)
{ KeepTogether = true, TotalWidth = printWidth, LockedWidth = true,
HorizontalAlignment = 0, SpacingBefore = 0, SpacingAfter = 15f };
// Set default values:
table.DefaultCell.Colspan = 1;
table.DefaultCell.HorizontalAlignment = Element.ALIGN_LEFT;
table.DefaultCell.Padding = 5f;
table.DefaultCell.PaddingLeft = 5f;
table.DefaultCell.PaddingBottom = 5f;
table.DefaultCell.VerticalAlignment = Element.ALIGN_BOTTOM;
table.DefaultCell.BorderWidthBottom = 0f;
table.DefaultCell.Phrase = new Phrase { Font = Blue11BoldFont };
table.DefaultCell.Border = Rectangle.NO_BORDER;
table.AddCell(new PdfPCell(new Phrase("Foo"))
{ HorizontalAlignment = Element.ALIGN_CENTER, MinimumHeight = 20f });
table.AddCell(new PdfPCell(new Phrase("Bar", Black10BoldFont))
{ Colspan = 4, HorizontalAlignment = Element.ALIGN_CENTER });
我原本预计我的第一个单元格将使用我的蓝色字体并应用填充。 但没有任何应用。事实上,当我删除DefaultCell行时,我得到相同的结果。
我现在一直在寻找几个小时,我找到的大多数样品都使用类似的东西。 任何建议都是非常有用的。
答案 0 :(得分:3)
您自己正在创建PdfPCell
个对象。在这种情况下,默认单元格 总是被忽略。
请参阅What is the PdfPTable.DefaultCell property used for?
创建PdfPTable
时,您需要添加单元格。
PdfPCell
对象并使用addCell()
方法添加该单元格。在这种情况下,您有责任定义每个单元格的属性。PdfPCell
,但是使用{{String
或Phrase
向表中添加addCell()
或PdfPCell
1}}方法。在这种情况下,使用默认属性在内部创建getDefaultCell()
。您可以通过更改默认单元格的属性 更改默认属性。使用createCell()
方法获取默认单元格。这不是一个错误,这是设计的。你错误地解释了"默认单元格"的概念的含义。请注意,这个概念在免费电子书The Best iText Questions on StackOverflow中进行了解释。
如果您希望在布局中保持一致,最好的方法是创建一个自己的PdfPCell
方法,创建一个 $(".note-editable").each(function(){
$(this).on("keyup", function(){
var cc = $(this).text().length;
var arr = $(this).next().attr("class").split('_');
var q = "q"+arr[0];
var maxChar = arr[2];
var textarea = $('*[name^="'+q+'"]');
var diffChar = parseInt(maxChar - cc);
if(diffChar >= 0)
{
$(this).next().text(diffChar + " Remaining out of " + maxChar);
}
else
{
$(this).next().text("0 Remaining out of " + maxChar);
//$(textarea).prop('disabled', true);
$(this).text($(this).text().slice(0,diffChar));
}
});
});
,您可以应用所有属性使用默认单元格。