TableRoundBorders.cs
// 完毕:
using System;
using System.IO;
using System.Drawing;
using System.Numerics;
using GrapeCity.Documents.Pdf;
using GrapeCity.Documents.Text;
using GrapeCity.Documents.Common;
using GrapeCity.Documents.Drawing;
using GrapeCity.Documents.Layout;
using GCTEXT = GrapeCity.Documents.Text;
using GCDRAW = GrapeCity.Documents.Drawing;
namespace DsPdfWeb.Demos
{
// This example shows how to draw a table with rounded
// table and cell borders,
// using the GrapeCity.Documents.Drawing.TableRenderer and related classes.
public class TableRoundBorders
{
public int CreatePDF(Stream stream)
{
var doc = new GcPdfDocument();
var g = doc.NewPage().Graphics;
DrawTable(g, g.CanvasSize.Width, g.CanvasSize.Height);
// 保存 PDF:
doc.Save(stream);
return doc.Pages.Count;
}
static void DrawTable(GcGraphics g, float pageWidth, float pageHeight)
{
var host = new LayoutHost();
var view = host.CreateView(pageWidth, pageHeight);
var rt = view.CreateRect();
rt.AnchorTopLeftRight(null, 36, 36, 36);
var ta = new TableRenderer(g,
rt, FixedTableSides.TopLeftRight,
rowCount: 5,
columnCount: 4,
gridLineColor: Color.Transparent,
gridLineWidth: 1,
rowMinHeight: 30,
paddingAll: 3)
{
TableFrameStyle = new FrameStyle
{
FillColor = Color.AliceBlue,
LineColor = Color.CornflowerBlue,
LineWidth = 1,
CornerRadius = 5
}
};
var columns = ta.ColumnRects;
columns[0].SetStarWidth(1);
columns[1].SetStarWidth(5);
columns[2].SetStarWidth(2);
columns[3].SetStarWidth(3);
var fmt = new TextFormat
{
Font = GCTEXT.Font.FromFile(Path.Combine("Resources", "Fonts", "calibri.ttf")),
ForeColor = Color.CornflowerBlue,
FontSize = 16,
FontSizeInGraphicUnits = true
};
var csNormal = new CellStyle
{
TextFormat = fmt,
ParagraphAlignment = ParagraphAlignment.Center,
PaddingLeftRight = 10,
FillColor = Color.MistyRose,
LineColor = Color.CornflowerBlue,
LinePaddingAll = 2,
LineWidth = 1,
CornerRadius = 5
};
var csCenter = new CellStyle(csNormal)
{
TextAlignment = TextAlignment.Center,
PaddingLeftRight = 0,
};
var csHeader = new CellStyle(csCenter)
{
TextFormat = new TextFormat(fmt)
{
ForeColor = Color.White,
FontBold = true
},
FillColor = Color.LightBlue
};
ta.AddCell(csHeader, 0, 0, "#");
ta.AddCell(csHeader, 0, 1, "Name");
ta.AddCell(csHeader, 0, 2, "Age");
ta.AddCell(csHeader, 0, 3, "Country");
ta.AddCell(csCenter, 1, 0, "1.");
ta.AddCell(csNormal, 1, 1, "Alice");
ta.AddCell(csCenter, 1, 2, "25");
ta.AddCell(csNormal, 1, 3, "Spain");
ta.AddCell(csCenter, 2, 0, "2.");
ta.AddCell(csNormal, 2, 1, "Bob");
ta.AddCell(csCenter, 2, 2, "36");
ta.AddCell(csNormal, 2, 3, "Germany");
ta.AddCell(csCenter, 3, 0, "3.");
ta.AddCell(csNormal, 3, 1, "Ken");
ta.AddCell(csCenter, 3, 2, "5");
ta.AddCell(csNormal, 3, 3, "Brazil");
ta.AddCell(csCenter, 4, 0, "4.");
ta.AddCell(csNormal, 4, 1, "Teddy");
ta.AddCell(csCenter, 4, 2, "12");
ta.AddCell(csNormal, 4, 3, "Mexico");
ta.ApplyCellConstraints();
ta.Render();
}
}
}