[英]MigraDoc - Table Border but no Cell/Row/Column Borders
我正在努力實施似乎應該是直截了當的事情,但運氣不佳。 我需要一個 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.Count
和this.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.