2016-03-19 5 views
0

Я пытаюсь сделать пробный баланс report.I хотите формат, как показано ниже прилагается format.how я могу сделать стол как этот enter image description hereКак организовать стол границу в iTextSharp

Я попытался,

table.DefaultCell.Border = Rectangle.RIGHT_BORDER | Rectangle.RIGHT_BORDER; 

, но код дает только вертикальные lines.how я могу сделать таблицу, как выше прилагается формат?

ответ

0

кажется, что вы не понимаете смысл bitwise | operator, потому что это не имеет смысла:

table.DefaultCell.Border = Rectangle.RIGHT_BORDER | Rectangle.RIGHT_BORDER; 

Линия выше является эквивалентом:

table.DefaultCell.Border = Rectangle.RIGHT_BORDER; 

также: вы не должны ожидать, что разные ячейки будут иметь другую границу, если вы используете table.DefaultCell.Border. Вы просите iTextSharp рисовать все неявно созданные ячейки таким образом, чтобы они имели только границу справа. Почему вы удивляетесь, когда iTextSharp подчиняется этой команде?

Вам нужно создать каждый PdfPCell явно и определить границы для каждого из них:

PdfPCell left_cell = new PdfPCell(); 
left_cell.Border = Rectangle.RIGHT_BORDER | Rectangle.TOP_BORDER | Rectangle.BOTTOM_BORDER; 
// add stuff to left_cell 
table.AddCell(left_cell); 
PdfPCell middle_cell = new PdfPCell(); 
middle_cell.Border = Rectangle.TOP_BORDER | Rectangle.BOTTOM_BORDER; 
// add stuff to middle_cell 
table.AddCell(middle_cell); 
PdfPCell right_cell = new PdfPCell(); 
right_cell.Border = Rectangle.LEFT_BORDER | Rectangle.TOP_BORDER | Rectangle.BOTTOM_BORDER; 
// add stuff to right_cell 
table.AddCell(right_cell); 

В вашем коде, вы можете применять различные границы для DefaultCell перед каждым AddCell() вызова, но это не реально имеют смысл. Лучше создать настраиваемый метод getCell(), который создает PdfPCell экземпляры именно так, как вы предпочитаете.

+1

Да, на самом деле я не знал о | operator.Позвольте мне попробовать, как вы сказали –

+0

Я добавил ссылку на [побитовый '|' operator] (https://msdn.microsoft.com/en-us/library/kxszd0kx.aspx), что очень общий оператор в языках программирования. Тот факт, что вы этого не знаете, говорит мне, что вы никогда не изучали компьютерные науки. –

+0

Какая версия будет поддерживать вышеуказанный код. Для меня это показывает ошибку, как «iTextSharp.text.Rectangle не содержит определения для« ПРАВО » –