public ParagraphBuilder LeftBorder(uint size = 1U, BorderValues lineStyle = BorderValues.Single) { return(this.Chain(p => p._config.Borders.LeftBorder = new LeftBorder { Val = lineStyle, Size = size })); }
private static void GetBorderProperties(string borderStyle, out BorderValues borderType, out string color, out UInt32 width) { string _width = GetBorderWidth(ref borderStyle); borderType = GetBorderStyle(ref borderStyle); UInt32.TryParse(_width, out width); color = DocxColor.GetHexColor(borderStyle.Trim().ToLower()); }
public CellBuilder BottomBorder(uint size = 1U, BorderValues lineStyle = BorderValues.Single, string color = null) { return(this.Chain(p => p._config.Borders.BottomBorder = new BottomBorder { Val = lineStyle, Size = size, Color = color })); }
public TableBuilder TopBorder(uint size = 1U, BorderValues lineStyle = BorderValues.Single, string color = null) { return(this.Chain(p => p._config.Borders.TopBorder = new TopBorder { Val = lineStyle, Size = size, Color = color })); }
/// <summary> /// Стиль нижней линии окрас линия размер линии и т. д. /// </summary> /// <param name="lineValues">Линия какя должна быть нарисована</param> /// <param name="size">Размер нарисованной линии</param> /// <param name="space">Растояние от линии до текста</param> /// <param name="color">Цвет линии</param> /// <returns></returns> public static TableCellBorders GenerateBorder(BorderValues lineValues = BorderValues.Single, int size = 4, int space = 0, string color = "000000") { TableCellBorders bordercell = new TableCellBorders(); bordercell.Append(new BottomBorder() { Val = lineValues, Color = color, Size = Convert.ToUInt32(size), Space = Convert.ToUInt32(space) }); return(bordercell); }
internal static void Set(this BorderType Border, int Size, string Color = "auto", BorderValues Value = BorderValues.Single, int Space = 0) { Border.Val = Value; Border.Color = Color; Border.Size = UInt32Value.FromUInt32((uint)Size); Border.Space = UInt32Value.FromUInt32((uint)Space); }
public static TableCell BorderRight(this TableCell Cell, int Size = 6, string Color = "auto", BorderValues Value = BorderValues.Single, int Space = 0) { Cell.GetBorderProperties() .Content() .GetOrAppend <RightBorder>().Set(Size, Color, Value, Space); return(Cell); }
private static Table CreateTable(BorderValues border = BorderValues.Single) { TableProperties properties = new TableProperties(); //table borders TableBorders borders = new TableBorders(); borders.TopBorder = new TopBorder() { Val = new EnumValue <BorderValues>(border) }; borders.BottomBorder = new BottomBorder() { Val = new EnumValue <BorderValues>(border) }; borders.LeftBorder = new LeftBorder() { Val = new EnumValue <BorderValues>(border) }; borders.RightBorder = new RightBorder() { Val = new EnumValue <BorderValues>(border) }; borders.InsideHorizontalBorder = new InsideHorizontalBorder() { Val = border }; borders.InsideVerticalBorder = new InsideVerticalBorder() { Val = border }; properties.Append(borders); //set the table width to page width TableWidth tableWidth = new TableWidth() { Width = "5000", Type = TableWidthUnitValues.Pct }; properties.Append(tableWidth); //add properties to table Table table = new Table(); table.Append(properties); return(table); }
private static void Write(TextWriter writer, string propertyName, BorderValues border) { switch (border) { case BorderValues.BasicBlackDashes: Write(writer, propertyName, "dash"); break; case BorderValues.BasicBlackDots: Write(writer, propertyName, "dot"); break; case BorderValues.BasicThinLines: Write(writer, propertyName, "solid"); break; } }
public static void AssertBorder( BorderType border, CellState cell, int d, BorderValues style = BorderValues.Single) { Assert.AreEqual((int)border.Size.Value / 8f, cell.Borders[d].Thickness); Assert.AreEqual(style, cell.Borders[d].Style); if (border.Color.Value != "auto") { Assert.AreEqual(border.Color.Value, cell.Borders[d].Color); } else { Assert.AreEqual("000000", cell.Borders[d].Color); } }
/// <summary> /// Set the table properties /// </summary> /// <param name="borderValues"> Border style </param> /// <returns></returns> private TableProperties GetTableProperties(string rgbColor, BorderValues borderValues) { TableProperties tblProperties = new TableProperties(); TableBorders tblBorders = new TableBorders(); TopBorder topBorder = new TopBorder(); topBorder.Val = new EnumValue <BorderValues>(borderValues); topBorder.Color = rgbColor; tblBorders.AppendChild(topBorder); BottomBorder bottomBorder = new BottomBorder(); bottomBorder.Val = new EnumValue <BorderValues>(borderValues); bottomBorder.Color = rgbColor; tblBorders.AppendChild(bottomBorder); RightBorder rightBorder = new RightBorder(); rightBorder.Val = new EnumValue <BorderValues>(borderValues); rightBorder.Color = rgbColor; tblBorders.AppendChild(rightBorder); LeftBorder leftBorder = new LeftBorder(); leftBorder.Val = new EnumValue <BorderValues>(borderValues); leftBorder.Color = rgbColor; tblBorders.AppendChild(leftBorder); InsideHorizontalBorder insideHBorder = new InsideHorizontalBorder(); insideHBorder.Val = new EnumValue <BorderValues>(borderValues); insideHBorder.Color = rgbColor; tblBorders.AppendChild(insideHBorder); InsideVerticalBorder insideVBorder = new InsideVerticalBorder(); insideVBorder.Val = new EnumValue <BorderValues>(borderValues); insideVBorder.Color = rgbColor; tblBorders.AppendChild(insideVBorder); tblProperties.AppendChild(tblBorders); return(tblProperties); }
public static TableProperties getTableProperties(BorderValues bvTop, string colorTop, BorderValues bvBott, string colorBott, BorderValues bvRight, string colorRight, BorderValues bvLeft, string colorLeft, BorderValues bvinsIdeHBorder, string colorInsideHBorder, BorderValues bvInsideVBorder, string colorInsideVBorder) { TableProperties tblProperties = new TableProperties(); TableBorders tblBorders = new TableBorders(); TopBorder topBorder = new TopBorder(); topBorder.Val = new EnumValue <BorderValues>(bvTop); topBorder.Color = colorTop; tblBorders.AppendChild(topBorder); BottomBorder bottomBorder = new BottomBorder(); bottomBorder.Val = new EnumValue <BorderValues>(bvBott); bottomBorder.Color = colorBott; tblBorders.AppendChild(bottomBorder); RightBorder rightBorder = new RightBorder(); rightBorder.Val = new EnumValue <BorderValues>(bvRight); rightBorder.Color = colorRight; tblBorders.AppendChild(rightBorder); LeftBorder leftBorder = new LeftBorder(); leftBorder.Val = new EnumValue <BorderValues>(bvLeft); leftBorder.Color = colorLeft; tblBorders.AppendChild(leftBorder); InsideHorizontalBorder insideHBorder = new InsideHorizontalBorder(); insideHBorder.Val = new EnumValue <BorderValues>(bvinsIdeHBorder); insideHBorder.Color = colorInsideHBorder; tblBorders.AppendChild(insideHBorder); InsideVerticalBorder insideVBorder = new InsideVerticalBorder(); insideVBorder.Val = new EnumValue <BorderValues>(bvInsideVBorder); insideVBorder.Color = colorInsideVBorder; tblBorders.AppendChild(insideVBorder); tblProperties.AppendChild(tblBorders); return(tblProperties); }
//..................................................................... /// <summary> /// Create Table Borders /// /// </summary> /// <returns></returns> private TableBorders MakeTableBorders(BorderValues btThick, string btColor) { TableBorders tableborders = new TableBorders( ); TopBorder borderTOP = new TopBorder( ); BottomBorder borderBTM = new BottomBorder( ); LeftBorder borderLFT = new LeftBorder( ); RightBorder borderRGT = new RightBorder( ); InsideHorizontalBorder borderHorz = new InsideHorizontalBorder( ); InsideVerticalBorder borderVert = new InsideVerticalBorder( ); borderTOP.Val = new EnumValue <BorderValues>(btThick); //BorderValues.Thick ); borderTOP.Color = btColor; // "CC0000"; borderBTM.Val = new EnumValue <BorderValues>(btThick); //BorderValues.Thick ); borderBTM.Color = btColor; // "CC0000"; borderLFT.Val = new EnumValue <BorderValues>(btThick); //BorderValues.Thick ); borderLFT.Color = btColor; // "CC0000"; borderRGT.Val = new EnumValue <BorderValues>(btThick); //BorderValues.Thick ); borderRGT.Color = btColor; // "CC0000"; borderHorz.Val = new EnumValue <BorderValues>(btThick); //BorderValues.Thick ); borderHorz.Color = btColor; // "CC0000"; borderVert.Val = new EnumValue <BorderValues>(btThick); //BorderValues.Thick ); borderVert.Color = btColor; // "CC0000"; tableborders.AppendChild(borderTOP); tableborders.AppendChild(borderBTM); tableborders.AppendChild(borderRGT); tableborders.AppendChild(borderLFT); tableborders.AppendChild(borderHorz); tableborders.AppendChild(borderVert); return(tableborders); }
static private BorderValues GetBorderValue(string borderValue) { BorderValues value = BorderValues.None; switch (borderValue) { case "Dotted": value = BorderValues.Dotted; break; case "Dashed": value = BorderValues.Dashed; break; case "Dot2Dashed": value = BorderValues.DotDotDash; break; case "DotDashed": value = BorderValues.DotDash; break; case "DashedSmall": value = BorderValues.DashSmallGap; break; case "Single": value = BorderValues.Single; break; case "DashDotStroked": value = BorderValues.DashDotStroked; break; case "ThreeDEmboss": value = BorderValues.ThreeDEmboss; break; case "Double": value = BorderValues.Double; break; default: value = BorderValues.None; break; } return(value); }
public static TableProperties GetTableProperties(uint pvSize = 10, BorderValues borderValues = BorderValues.Single) { return(new TableProperties( new TableBorders( new TopBorder { Val = new EnumValue <BorderValues>(borderValues), Size = pvSize }, new BottomBorder { Val = new EnumValue <BorderValues>(borderValues), Size = pvSize }, new LeftBorder { Val = new EnumValue <BorderValues>(borderValues), Size = pvSize }, new RightBorder { Val = new EnumValue <BorderValues>(borderValues), Size = pvSize }, new InsideHorizontalBorder { Val = new EnumValue <BorderValues>(borderValues), Size = pvSize }, new InsideVerticalBorder { Val = new EnumValue <BorderValues>(borderValues), Size = pvSize } ))); }
OpenXmlElement GenerateContent(Body Body, DataType DataType, object Obj, TokenParameters TokenParams) { switch (DataType) { case DataType.None: return(null); case DataType.EmbeddedData: { EmbeddedData ObjData = (EmbeddedData)Obj; switch (ObjData.Type.MediaType) { case "image/jpeg": case "image/jpg": case "image/png": { Image Img = ObjData.ParseImageData(); Utils.GetSizeInEMU(Img, out long W, out long H); const string WidthName = "width"; const string HeightName = "height"; if (TokenParams.Defined(WidthName) && TokenParams.Defined(HeightName)) { W = Utils.MilimeterToEmu(TokenParams.Get <int>(WidthName)); H = Utils.MilimeterToEmu(TokenParams.Get <int>(HeightName)); } else if (TokenParams.Defined(WidthName)) { long NewW = Utils.MilimeterToEmu(TokenParams.Get <int>(WidthName)); Utils.Scale((float)NewW / W, ref W, ref H); } else if (TokenParams.Defined(HeightName)) { long NewH = Utils.MilimeterToEmu(TokenParams.Get <int>(HeightName)); Utils.Scale((float)NewH / H, ref W, ref H); } GenerateImagePart(Img, out string ImageID); return(new Run(new RunProperties(), GenerateDrawing(ImageID, W, H))); } case "text/csv": { string CSVData = ObjData.ParseStringData(); string[] CSVLines = CSVData.Replace("\r", "").Split(new[] { '\n' }, StringSplitOptions.RemoveEmptyEntries); // https://www.codeproject.com/Articles/1043875/Create-Word-table-using-OpenXML-and-Csharp-Without Table Tab = new Table(); //TableProperties TblPr = new TableProperties(); //Tab.AppendChild(TblPr); uint TableBorder = 1; BorderValues BorderType = BorderValues.BasicThinLines; TableProperties Props = new TableProperties(); Tab.AppendChild(Props); PageDimensions Dim; GetPageDimensions(Body, out Dim); Props.AppendChild(new TableStyle() { Val = "0" }); Props.AppendChild(new TableWidth() { Width = Dim.FillWidth.ToString(), Type = TableWidthUnitValues.Dxa }); Props.AppendChild(new TableIndentation() { Width = 0, Type = TableWidthUnitValues.Dxa }); TableBorders Borders = new TableBorders(); Borders.AppendChild(new TopBorder() { Val = new EnumValue <BorderValues>(BorderType), Size = TableBorder }); Borders.AppendChild(new BottomBorder() { Val = new EnumValue <BorderValues>(BorderType), Size = TableBorder }); Borders.AppendChild(new LeftBorder() { Val = new EnumValue <BorderValues>(BorderType), Size = TableBorder }); Borders.AppendChild(new RightBorder() { Val = new EnumValue <BorderValues>(BorderType), Size = TableBorder }); Borders.AppendChild(new InsideHorizontalBorder() { Val = new EnumValue <BorderValues>(BorderType), Size = TableBorder }); Borders.AppendChild(new InsideVerticalBorder() { Val = new EnumValue <BorderValues>(BorderType), Size = TableBorder }); Props.AppendChild(Borders); Props.AppendChild(new TableLayout() { Type = TableLayoutValues.Fixed }); foreach (var Line in CSVLines) { string[] Columns = Line.Split(new[] { ';' }); TableCell[] Cells = new TableCell[Columns.Length - 1]; for (int i = 0; i < Columns.Length - 1; i++) { string Column = Columns[i]; if (Column.StartsWith("\"") && Column.EndsWith("\"")) { Column = Column.Substring(1, Column.Length - 2); } Cells[i] = GenerateCell(Column); } Tab.AppendChild(GenerateRow(Cells)); } //Body.ReplaceChild(Tab, Root); return(Tab); } case "text/plain": return(GenerateTextRun(ObjData.ParseStringData())); default: throw new NotImplementedException(); } } case DataType.String: { WordTable.ColumnStyle TokenParamStyle = WordTable.ColumnStyle.NONE; if (TokenParams.Defined("bold")) { TokenParamStyle |= WordTable.ColumnStyle.BOLD; } if (TokenParams.Defined("italic")) { TokenParamStyle |= WordTable.ColumnStyle.ITALIC; } if (TokenParams.Defined("underline")) { TokenParamStyle |= WordTable.ColumnStyle.UNDERLINE; } WordTable.ColumnStyle Style = WordTableContext.GetCurrent()?.GetCurrentColumn()?.ParseStyle() ?? TokenParamStyle; return(GenerateTextRun(Obj.ToString(), Style)); } case DataType.PageBreak: return(new Run(new RunProperties(), new Break() { Type = BreakValues.Page })); default: throw new NotImplementedException(); } }
public static TableProperties GetTableProperties( string borderColor = "#0000000", BorderValues b = BorderValues.None, string tableWidth = "2500" ) { TableProperties tblProperties = new TableProperties(); TableBorders tblBorders = new TableBorders(); TableCellVerticalAlignment tcVA = new TableCellVerticalAlignment { Val = TableVerticalAlignmentValues.Center }; tblBorders.AppendChild(tcVA); TopBorder topBorder = new TopBorder { Val = new EnumValue <BorderValues>(b), Color = borderColor }; tblBorders.AppendChild(topBorder); BottomBorder bottomBorder = new BottomBorder { Val = new EnumValue <BorderValues>(b), Color = borderColor }; tblBorders.AppendChild(bottomBorder); RightBorder rightBorder = new RightBorder { Val = new EnumValue <BorderValues>(b), Color = borderColor }; tblBorders.AppendChild(rightBorder); LeftBorder leftBorder = new LeftBorder { Val = new EnumValue <BorderValues>(b), Color = borderColor }; tblBorders.AppendChild(leftBorder); InsideHorizontalBorder insideHBorder = new InsideHorizontalBorder { Val = new EnumValue <BorderValues>(b), Color = borderColor }; tblBorders.AppendChild(insideHBorder); InsideVerticalBorder insideVBorder = new InsideVerticalBorder { Val = new EnumValue <BorderValues>(b), Color = borderColor }; tblBorders.AppendChild(insideVBorder); tblProperties.AppendChild(tblBorders); TableWidth width = new TableWidth { Width = tableWidth, Type = TableWidthUnitValues.Pct }; tblProperties.AppendChild(width); return(tblProperties); }
public static void AssertBorder(BorderType border, BorderState b, BorderValues style = BorderValues.Single) { Assert.AreEqual((int)border.Size.Value / 8f, b.Thickness); Assert.AreEqual(border.Color.Value, b.Color); Assert.AreEqual(style, b.Style); }
public static Table createTable(MainDocumentPart mainPart, bool bolds, bool italics, bool underlines, string[] content, JustificationValues justifications, int right, int cell, string rgbColor = "000000", BorderValues borderValues = BorderValues.Thick) { Table t = new Table(); t.Append(getTableProperties(rgbColor, borderValues)); t.Append(CreateHead(mainPart, bolds, italics, underlines, justifications, cell)); return(t); }
internal static void ApplyBorders(OpenXmlCompositeElement element, string borderStyle, string leftBorderStyle, string topBorderStyle, string rightBorderStyle, string bottomBorderStyle, bool useDefaultBorder) { BorderValues borderValue = BorderValues.None; string color = string.Empty; UInt32 width = 0; bool hasBorder = false; if (!string.IsNullOrEmpty(borderStyle)) { hasBorder = true; GetBorderProperties(borderStyle, out borderValue, out color, out width); } if (!string.IsNullOrEmpty(topBorderStyle)) { ApplyBorder <TopBorder>(topBorderStyle, element); } else if (hasBorder) { TopBorder topBorder = GetBorderType <TopBorder>(borderValue, color, width); if (topBorder != null) { element.Append(topBorder); } } else if (useDefaultBorder) { ApplyDefaultBorder <TopBorder>(element); } if (!string.IsNullOrEmpty(leftBorderStyle)) { ApplyBorder <LeftBorder>(leftBorderStyle, element); } else if (hasBorder) { LeftBorder leftBorder = GetBorderType <LeftBorder>(borderValue, color, width); if (leftBorder != null) { element.Append(leftBorder); } } else if (useDefaultBorder) { ApplyDefaultBorder <LeftBorder>(element); } if (!string.IsNullOrEmpty(bottomBorderStyle)) { ApplyBorder <BottomBorder>(bottomBorderStyle, element); } else if (hasBorder) { BottomBorder bottomBorder = GetBorderType <BottomBorder>(borderValue, color, width); if (bottomBorder != null) { element.Append(bottomBorder); } } else if (useDefaultBorder) { ApplyDefaultBorder <BottomBorder>(element); } if (!string.IsNullOrEmpty(rightBorderStyle)) { ApplyBorder <RightBorder>(rightBorderStyle, element); } else if (hasBorder) { RightBorder rightBorder = GetBorderType <RightBorder>(borderValue, color, width); if (rightBorder != null) { element.Append(rightBorder); } } else if (useDefaultBorder) { ApplyDefaultBorder <RightBorder>(element); } }
/// <summary> /// /// </summary> /// <param name="bordersSelect">Выбор границ для ячейки</param> /// <param name="lineValues">Линия какая должна быть нарисована</param> /// <param name="size">Размер нарисованной линии</param> /// <param name="space">Расстояние от линии до текста</param> /// <param name="color">Цвет линии</param> /// <returns></returns> public static TableCellBorders SelectGenerateBorder(SelectTableCellBorders bordersSelect, BorderValues lineValues = BorderValues.Single, int size = 4, int space = 0, string color = "000000") { var borderCell = new TableCellBorders(); var allBorder = new List <BorderType> { new TopBorder() { Val = BorderValues.Single, Color = "000000", Size = Convert.ToUInt32(4), Space = Convert.ToUInt32(0) }, new LeftBorder() { Val = BorderValues.Single, Color = "000000", Size = Convert.ToUInt32(4), Space = Convert.ToUInt32(0) }, new RightBorder() { Val = BorderValues.Single, Color = "000000", Size = Convert.ToUInt32(4), Space = Convert.ToUInt32(0) }, new BottomBorder() { Val = BorderValues.Single, Color = "000000", Size = Convert.ToUInt32(4), Space = Convert.ToUInt32(0) } }; allBorder.ForEach(x => { var name = x.GetType(); if (bordersSelect.ToString().Contains(name.Name)) { borderCell.Append(x); } }); return(borderCell); }
public BorderState() { Style = BorderValues.Single; }
public static DocumentFormat.OpenXml.Wordprocessing.BorderValues ToOOxml(this BorderValues value) { return((DocumentFormat.OpenXml.Wordprocessing.BorderValues)(int) value); }
/// <summary> /// Create a personal table /// </summary> /// <param name="bolds"> Bold for every table elements </param> /// <param name="italics"> Italic for every table elements </param> /// <param name="underlines"> Underline for every table elements </param> /// <param name="texts"> Text for every table elements </param> /// <param name="justifications"> Type of justification </param> /// <param name="borderValues"> Border style </param> /// <returns></returns> public Table CreateTable(MainDocumentPart mainPart, bool[] bolds, bool[] italics, bool[] underlines, string[] texts, JustificationValues[] justifications, int rows, int cell, string rgbColor = "000000", BorderValues borderValues = BorderValues.Thick) { if (bolds.Length == italics.Length && italics.Length == underlines.Length && underlines.Length == texts.Length) { Table table = new Table(); // set table properties table.AppendChild(GetTableProperties(rgbColor, borderValues)); // row 1 int y = 0; for (int i = 0; i < rows; i++) { TableRow tr = new TableRow(); for (int j = 0; j < cell; j++) { AddStyle(mainPart, bolds[y], italics[y], underlines[y], false, $"0{y}", $"Table{y}"); TableCell tc = new TableCell(); Paragraph p = CreateParagraphWithStyle($"0{y}", justifications[y]); AddTextToParagraph(p, texts[y]); tc.Append(p); tr.Append(tc); y++; } table.Append(tr); } return(table); } else { throw new Exception("Errore nella tabella! Numero di stili o testi diverso dal numero di paragrafi"); } }