MigraDoc Два стола в одном ряду

Я работаю над созданием отчета с MigraDoc, который будет иметь 4 таблицы, 2 строки с 2 таблицами.

Я попробовал несколько различных методов для достижения этой цели.

1- Я попытался создать leftIndent на столе.

table1.Format.LeftIndent = 7;

  1. Я попытался создать leftIndent в строках таблицы.

tables.Rows.LeftIndent = 5;

  1. Я также попытался создать таблицу и вставить каждую таблицу в отдельную ячейку, но я не уверен, как разместить метод для создания таблицы в ячейке таблицы.

Любая помощь или вклад, который я могу получить по этому вопросу, будет высоко ценится. Спасибо!

2 ответа

Решение

После этого поста я смог добиться этого:

У меня было 4 таблицы, как это:

        Table table = new Table();
        table.Borders.Width = 0.75;

        Column column = table.AddColumn(Unit.FromCentimeter(6));
        column.Format.Alignment = ParagraphAlignment.Left;

        Row row = table.AddRow();

        Cell cell = row.Cells[0];
        cell.AddParagraph("some value on first row");

        row = table.AddRow();
        cell = row.Cells[0];
        cell.AddParagraph("another value on second row");

        row = table.AddRow();
        cell = row.Cells[0];
        cell.AddParagraph("The value on third row");

Допустим, мы называем эти таблицы table, table2, table3 и table4.

Мы можем вставить таблицу в ячейку строки в MigraDoc следующим образом:

        Document document = new Document();
        Table TableContainer = new Table();
        Column columnC = TableContainer.AddColumn(Unit.FromCentimeter(7));
        TableContainer.AddColumn(Unit.FromCentimeter(7));

        Row rowC = TableContainer.AddRow();
        Cell cellC = rowC.Cells[0];
        cellC.AddParagraph("First Column");
        cellC = rowC.Cells[1];
        cellC.AddParagraph("Second Column");

        rowC = TableContainer.AddRow();
        cellC = rowC.Cells[0];
        cellC.Elements.Add(table);
        cellC = rowC.Cells[1];
        cellC.Elements.Add(table2);

        rowC = TableContainer.AddRow();
        cellC = rowC.Cells[0];
        cellC.Elements.Add(table3);
        cellC = rowC.Cells[1];
        cellC.Elements.Add(table4);

        document.LastSection.Add(TableContainer);

Я не вижу вопроса.;-)

По поводу 3: Существует один известный прием добавления таблиц в таблицы: добавление TextFrame в ячейку и добавление таблицы в TextFrame.

Ячейки не могут перейти на следующую страницу, поэтому внутренние таблицы должны быть достаточно маленькими, чтобы поместиться на одной странице.

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