Как избавиться от горизонтальной линии в таблице при переходе на следующую страницу в Migradoc - PullRequest
0 голосов
/ 17 июня 2020

Я все еще изучаю Migrado c и C# в этом отношении, извините, если мой код немного многословен, но кажется, что если моя таблица не помещается в нижнюю часть, она переходит на следующую страницу, которая Ладно. Но я также заметил, что он создает дополнительную горизонтальную линию между информацией в таблицах и заголовками (дата, штат, заметки, счет и т. Д. c). Я пробовал все, от создания видимости границ до false и видимости целых строк до false, но это не сработало. Вот как это выглядит:

Invoice

Вот код, который у меня есть:

Table timeDetailTable2 = section.AddTable();
        timeDetailTable2.Rows.LeftIndent = "-1cm";
        timeDetailTable2.Borders.Width = 0.75;

        Column column6 = timeDetailTable2.AddColumn(Unit.FromCentimeter(2));
        column6.Format.Alignment = ParagraphAlignment.Center;
        column6 = timeDetailTable2.AddColumn(Unit.FromCentimeter(3));
        column6.Format.Alignment = ParagraphAlignment.Left;
        column6 = timeDetailTable2.AddColumn(Unit.FromCentimeter(4.75));
        column6.Format.Alignment = ParagraphAlignment.Left;
        column6 = timeDetailTable2.AddColumn(Unit.FromCentimeter(1));
        column6.Format.Alignment = ParagraphAlignment.Center;
        column6 = timeDetailTable2.AddColumn(Unit.FromCentimeter(1.5));
        column6.Format.Alignment = ParagraphAlignment.Center;
        column6 = timeDetailTable2.AddColumn(Unit.FromCentimeter(3.75));
        column6.Format.Alignment = ParagraphAlignment.Left;
        column6 = timeDetailTable2.AddColumn(Unit.FromCentimeter(2));
        column6.Format.Alignment = ParagraphAlignment.Right;

        Row row6 = timeDetailTable2.AddRow();
        Cell cell6 = row6.Cells[0];
        cell6.Format.Font.Size = 9;
        cell6.Format.Alignment = ParagraphAlignment.Left;
        cell6.Shading.Color = Colors.LightGray;
        cell6.MergeRight = 6;
        cell6.AddParagraph("Charge To: ADV Integrity / Error Message on Outlook   Location: NO NOT USE");
        cell6.Format.Font.Bold = true;

        row6 = timeDetailTable2.AddRow();
        cell6 = row6.Cells[0];
        cell6.AddParagraph("Date");



        cell6 = row6.Cells[1];
        cell6.AddParagraph("Staff");

        cell6 = row6.Cells[2];
        cell6.AddParagraph("Notes");

        cell6 = row6.Cells[3];
        cell6.AddParagraph("Bill");

       cell6 = row6.Cells[4];
        cell6.AddParagraph("Hours");

        cell6 = row6.Cells[5];
        cell6.AddParagraph("Rate");

        cell6 = row6.Cells[6];

        cell6.AddParagraph("Ext Amt");

        for (int i = 0; i <= 6; i++)
        {
            cell6 = row6.Cells[i];
            cell6.Borders.Left.Visible = false;
            cell6.Borders.Right.Visible = false;
            cell6.Borders.Top.Visible = false;
            cell6.Format.Font.Bold = true;
            cell6.Format.Font.Size = 9;
        }

        row6 = timeDetailTable2.AddRow();

        cell6 = row6.Cells[0];
        cell6.AddParagraph();
        cell6.MergeRight = 6;
        cell6.Borders.Bottom.Visible = false;
        cell6.Row.Borders.Visible = false;

        row6 = timeDetailTable2.AddRow();
        cell6 = row6.Cells[0];
        cell6.Format.Font.Size = 9;
        cell6.AddParagraph("04/09/2020");
        cell6.Borders.Right.Visible = false;

        cell6 = row6.Cells[1];
        cell6.Format.Font.Size = 9;
        cell6.AddParagraph("Beed, Jacob");
        cell6.Borders.Right.Visible = false;

        cell6 = row6.Cells[2];
        cell6.Format.Font.Size = 9;
        cell6.Format.Font.Bold = true;
        paragraph = cell6.AddParagraph("Service Ticket:");
        paragraph.AddFormattedText(" 41466", TextFormat.NotBold);
        cell6.AddParagraph();
        paragraph2 = cell6.AddParagraph("Summary:");
        paragraph2.AddFormattedText(" New e-mail needed please, ASAP", TextFormat.NotBold);
        cell6.AddParagraph();
        paragraph3 = cell6.AddParagraph("");
        paragraph3.AddFormattedText("Created new email address for webinars and assigned exchange online" +
            "license. Mailbox will be available shortly.", TextFormat.NotBold);
        cell6.Borders.Right.Visible = false;



        cell6 = row6.Cells[3];
        cell6.Format.Font.Size = 9;
        cell6.AddParagraph("Y");
        cell6.Borders.Right.Visible = false;


        cell6 = row6.Cells[4];
        cell6.Format.Font.Size = 9;
        cell6.AddParagraph("0.50");
        cell6.Borders.Right.Visible = false;

        cell6 = row6.Cells[5];
        cell6.Format.Font.Size = 9;
        cell6.AddParagraph("125.00");
        cell6.Borders.Right.Visible = false;

        cell6 = row6.Cells[6];
        cell6.Format.Font.Size = 9;
        cell6.AddParagraph("$62.50");

        //adding horizontal line 
        row5 = timeDetailTable2.AddRow();
        row5.Borders.Visible = false;


        row6 = timeDetailTable2.AddRow();

        for(int i = 0; i <= 5; i++)
        {
            cell6 = row6.Cells[i];
            cell6.Borders.Right.Visible = false;
        }

        cell6 = row6.Cells[5];
        cell6.Format.Font.Size = 9;
        cell6.MergeRight = 1;
        cell6.Format.Alignment = ParagraphAlignment.Right;
        cell6.Format.Font.Bold = true;
        cell6.AddParagraph("Subtotal: $187.50");

        for (int i = 0; i <= 6; i++)
        {
            cell6 = row6.Cells[i];
            cell6.Borders.Bottom.Visible = false;
            cell6.Borders.Left.Visible = false;
            cell6.Borders.Right.Visible = false;
        }

У меня в основном тот же код для таблицы выше, за исключением того, что я назвал ее timeDetailTable вместо timeDetailTable2 типа Table. Как я могу предотвратить появление лишней горизонтальной линии между заголовком и таблицей всякий раз, когда я go перехожу на новую страницу?

1 Ответ

1 голос
/ 17 июня 2020

Думаю, линия, которую вы видите, является верхней границей первой строки на следующей странице. Возможно, на первый взгляд в этом нет никакого смысла.
Горизонтальные границы - это комбинация нижней границы строки вверху и верхней границы строки внизу. И я предполагаю, что эта комбинация сделана без учета разрывов страниц.

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

Но ИМХО странно иметь заголовок и разделительную строку в конце первой страницы, а первые данные - на второй странице. Этого легко избежать, установив KeepWith для первой строки блока строк, который вы хотите сохранить вместе.

Другой вариант - пометить первые строки (включая промежуточный ряд) как строки заголовков. Строки заголовков будут повторяться всякий раз, когда таблица переходит на следующую страницу. Это также должно предотвратить появление строк заголовков в нижней части страницы без каких-либо строк данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...