簡體   English   中英

MigraDoc - 表格邊框但沒有單元格/行/列邊框

[英]MigraDoc - Table Border but no Cell/Row/Column Borders

我正在努力實施似乎應該是直截了當的事情,但運氣不佳。 我需要一個 MigraDoc 表格來渲染表格邊框,不包括中間的所有單元格:

在此處輸入圖片說明

我已經關注了這篇文章的評論:

如何在 MigraDoc 中為表格添加邊框?

有用的信息,但我還沒有能夠從中實施完整的修復? 在將表添加到該部分之前,我運行了以下代碼:

        table.Borders.Visible = true;
        for (int i = 0; i < table.Rows.Count - 2; i++)
        {
            table.Rows[i].Borders.Bottom.Visible = false;
        }

起初似乎它完成了這項工作......直到我遇到一個跟隨下一頁的表格......底行邊框顯然只為最底行呈現並且不考慮PageBreaks中間表。

當然必須有更好的方法來做到這一點?

編輯:我很欣賞這是一個老問題,但以防萬一有人最終在這里尋找答案......

嘗試使用SetEdge選項。 有兩種方法可以做到這一點,這取決於您是否知道將有多少表格行或列(靜態內容),或者您還不知道(動態內容)。

選項 1:靜態表格內容

首先設置你的表格,這樣所有的列、單元格和行都存在,然后用

table.SetEdge(a, b, x, y, Edge.Box, BorderStyle.Single, 1, Colors.Black);

前四個數字a, b, x, y表示您要為其添加邊框的表格單元格,前兩個數字是左上角的列然后是行(在您的情況下為整個表格邊框,這應該是0, 0 ) 和第二個數字是右下角的列然后是行(根據您的示例,這是3, 4 ,假設標題是標題行)。

Edge.Box之后,選項是border style, border width, border color

然后,您可以像往常一樣為每個單元格或行添加任何額外的單獨邊框,以便按照您的示例在標題行的底部添加邊框...

headerRow.Borders.Bottom.Width = 0.2;
headerRow.Borders.Bottom.Color = Colors.Black;

選項 2:動態表格內容

如果您不知道表格中有多少行或列,因為內容是動態的,可以使用this.table.Columns.Countthis.table.Rows.Count設置this.table.Columns.Count的前四個數字 - 例如:

table.SetEdge(0, 0, this.table.Columns.Count, this.table.Rows.Count, Edge.Box, BorderStyle.Single, 1, Colors.Black);

參考文獻

有關更多信息,請參閱此帖子: https : //forum.pdfsharp.net/viewtopic.php?f=2&t=3598

它也在 MigraDoc 示例中(搜索 SetEdge): http ://pdfsharp.net/wiki/HelloMigraDoc-sample.ashx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM