Ширина таблицы 2 или ячейки 2 включает границу? Для Cell2, это включает дополнение?

Я работаю с библиотекой DynamicPDF для набора табличных данных, и у меня есть неполное понимание того, как работает свойство width объектов Table2 и Cell2. В частности, я не знаю, является ли ширина, установленная свойством, внутренней или внешней. Для объекта Table2 я не знаю, включает ли он левую и правую границы таблицы. Для объекта Cell2 я не знаю, включает ли он левую и правую границы или левый и правый отступы. В этом отношении у меня есть неполное понимание того, почему нам разрешено устанавливать ширину таблицы вообще - несомненно, ширина логически следует из ширины столбцов таблицы, и в этом случае правильный способ изменить ширину таблицы - это изменение ширины столбца?

Было бы полезно узнать, включает ли ширина таблицы, в частности, ее границы, потому что я хочу набирать таблицы, которые являются шириной страницы (или, скорее, шириной области внутри полей страницы). Если ширина таблицы Table2 включает ширину границы, то правильный способ сделать это - установить ширину на ширину страницы. Если нет, то правильный способ - сначала вычесть ширину левой и правой границ. Если я сделаю это неправильно, то стол будет либо слишком широким, либо слишком узким.

Эти страницы кажутся современной документацией, но они не указывают, включены ли границы / отступы (они просто говорят "Получает или задает ширину таблицы" и "Получает ширину ячейки").) На этой странице есть примеры использования класса Table2, но все они используют жестко заданную ширину.

1 ответ

Решение

Ширина таблицы не зависит от ширины столбца. Ширина таблицы не может быть изменена путем изменения ширины столбца. При создании таблиц с динамическими данными установка ширины таблицы позволяет указать область, в которой будет отображаться содержимое, и все, что выходит за пределы этих границ, будет перетекано в новую таблицу. Например, если сумма ширины столбцов больше ширины таблицы, столбцы, которые не попадают в границы таблицы, выталкиваются в таблицу переполнения, к которой можно получить доступ с помощью GetOverflowColumns().

Ширина границы не включена в ширину таблицы. С другой стороны, ширина ячейки включает в себя ширину границы ячейки и заполнение ячейки. Вот код, который демонстрирует, как установлены разные ширины.

Document document = new Document();
Page page = new Page(); 

Table2 table = new Table2(0, 0, 300, 500);
table.Border.Width = 5;
table.Border.Color = RgbColor.Red;
table.Columns.Add(100);
table.Columns.Add(100);
table.Columns.Add(100);

Row2 row = table.Rows.Add(); 

Cell2 cell = row.Cells.Add("Cell 1");
cell.Padding = 5;
cell.Border.Width = 5;
cell.Border.Color = RgbColor.Blue;

Cell2 cell2 = row.Cells.Add("Cell 2");
cell2.Padding = 5;
cell2.Border.Width = 5;
cell2.Border.Color = RgbColor.Green;

Cell2 cell3 = row.Cells.Add("Cell 3");
cell3.Padding = 5;
cell3.Border.Width = 5;
cell3.Border.Color = RgbColor.DarkOrange;

page.Elements.Add(table);

page.Elements.Add(new LayoutGrid());
page.Elements.Add(new Label("Table Width: " + table.Width.ToString(), 0, 50, 200, 20));

document.Pages.Add(page);

document.Draw("Table2.pdf");

Отказ от ответственности: я работаю в ceTe Software, компании, которая разрабатывает библиотеки DynamicPDF.

Другие вопросы по тегам