Пример #1
0
        private void AppendAlignment(W.TableCell cell, TextVerticalAlignment alignment)
        {
            TableVerticalAlignmentValues al = TableVerticalAlignmentValues.Center;

            switch (alignment)
            {
            case TextVerticalAlignment.Top:
                al = TableVerticalAlignmentValues.Top;
                break;

            case TextVerticalAlignment.Center:
                al = TableVerticalAlignmentValues.Center;
                break;

            case TextVerticalAlignment.Bottom:
                al = TableVerticalAlignmentValues.Bottom;
                break;
            }

            cell.TableCellProperties.Append(
                new W.TableCellVerticalAlignment()
            {
                Val = al
            }
                );
        }
Пример #2
0
        internal static bool GetCellVerticalAlignment(string style, out TableVerticalAlignmentValues alignment)
        {
            alignment = TableVerticalAlignmentValues.Top;
            bool assigned = false;

            switch (style.ToLower())
            {
            case "top":
                assigned  = true;
                alignment = TableVerticalAlignmentValues.Top;
                break;

            case "middle":
                assigned  = true;
                alignment = TableVerticalAlignmentValues.Center;
                break;

            case "bottom":
                assigned  = true;
                alignment = TableVerticalAlignmentValues.Bottom;
                break;
            }

            return(assigned);
        }
Пример #3
0
        /// <summary>
        /// Создаёт ячейку таблицы.
        /// </summary>
        /// <param name="runProperties">Параметры текста.</param>
        /// <param name="aligment">Вертикальное выравнивание.</param>
        /// <param name="justification">Горизонтальное выравнивание.</param>
        /// <param name="text">Текст в ячейке.</param>
        /// <returns>Ячеёка таблицы.</returns>
        protected static TableCell CreateTableCell(
            string text,
            RunProperties runProperties,
            TableVerticalAlignmentValues aligment = TableVerticalAlignmentValues.Center,
            JustificationValues justification     = JustificationValues.Center)
        {
            var textLines = text.Split(new[] { Environment.NewLine }, StringSplitOptions.None);

            var tableCell = new TableCell(
                new TableCellProperties(new TableCellVerticalAlignment {
                Val = aligment
            }));

            foreach (var line in textLines)
            {
                tableCell.AppendChild(
                    new Paragraph(
                        new ParagraphProperties(
                            new Justification {
                    Val = justification
                },
                            new SpacingBetweenLines {
                    Before = "0", After = "0"
                }),
                        new Run(
                            runProperties.CloneNode(true),
                            new Text
                {
                    Text  = line,
                    Space = SpaceProcessingModeValues.Preserve
                })));
            }

            return(tableCell);
        }
Пример #4
0
		internal static bool GetCellVerticalAlignment(string style, out TableVerticalAlignmentValues alignment)
		{
			alignment = TableVerticalAlignmentValues.Top;
			bool assigned = false;

			switch (style.ToLower())
			{
				case "top":
					assigned = true;
					alignment = TableVerticalAlignmentValues.Top;
					break;

				case "middle":
					assigned = true;
					alignment = TableVerticalAlignmentValues.Center;
					break;

				case "bottom":
					assigned = true;
					alignment = TableVerticalAlignmentValues.Bottom;
					break;
			}

			return assigned;
		}
Пример #5
0
    public static TableCell VerticalAlignment(this TableCell Cell, TableVerticalAlignmentValues Alignment)
    {
        Cell.Content()
        .GetOrPrepend <TableCellProperties>().Content()
        .GetOrAppend <TableCellVerticalAlignment>()
        .Val = Alignment;

        return(Cell);
    }
Пример #6
0
 private void TestValue(TableVerticalAlignmentValues value)
 {
     Apply(new TableCellVerticalAlignment
     {
         Val = new EnumValue <TableVerticalAlignmentValues>(value)
     });
     foreach (var cell in CellsInArea)
     {
         Assert.AreEqual(value, cell.VerticalAlignment);
     }
 }
Пример #7
0
 /// <summary>
 /// Добавляет к строке таблицы объединённые ячейки.
 /// </summary>
 /// <param name="tableRow">Строка таблицы.</param>
 /// <param name="text">Текст в объединённой ячейки.</param>
 /// <param name="mergedCells">Количество объединяемых ячеек.</param>
 /// <param name="runProperties">Параметры текста.</param>
 /// <param name="aligment">Вертикальное выравнивание.</param>
 /// <param name="justification">Горизонтальное выравнивание.</param>
 protected void AppendMergedCellsToRow(
     TableRow tableRow,
     string text,
     int mergedCells,
     RunProperties runProperties,
     TableVerticalAlignmentValues aligment = TableVerticalAlignmentValues.Center,
     JustificationValues justification     = JustificationValues.Right)
 {
     for (var i = 0; i <= mergedCells; i++)
     {
         tableRow.AppendChild(
             i == 0
                 ? CreateTableCellForMerging(text, true, runProperties, aligment, justification)
                 : CreateTableCellForMerging(string.Empty, false, runProperties, aligment, justification));
     }
 }
Пример #8
0
        /// <summary>
        /// Создаёт ячейку таблицы, предназначенную для объединения.
        /// </summary>
        /// <param name="text">Текст в ячейке.</param>
        /// <param name="isFirstCellInMerge">Ячейка является первой по порядку среди объединяемых ячеек.</param>
        /// <param name="runProperties">Параметры текста.</param>
        /// <param name="aligment">Вертикальное выравнивание.</param>
        /// <param name="justification">Горизонтальное выравнивание.</param>
        /// <returns>Ячейка таблицы для объединения.</returns>
        private static TableCell CreateTableCellForMerging(
            string text,
            bool isFirstCellInMerge,
            RunProperties runProperties,
            TableVerticalAlignmentValues aligment,
            JustificationValues justification)
        {
            var cellProperties = new TableCellProperties(
                new HorizontalMerge
            {
                Val =
                    isFirstCellInMerge
                            ? MergedCellValues.Restart
                            : MergedCellValues.Continue
            });

            var cellForMerging = CreateTableCell(text, runProperties, aligment, justification);

            cellForMerging.AppendChild(cellProperties);

            return(cellForMerging);
        }
Пример #9
0
        /// <summary>
        /// Возвращает ячейку с настройками может применятся для создания строки
        /// </summary>
        /// <param name="paragraph">1 Параграф для добавления в ячейку</param>
        /// <param name="width">Длина ячейки 567 - 1 см </param>
        /// <param name="type">Тип выравнивания</param>
        /// <param name="leftmargin">Левый отступ в пикселях</param>
        /// <param name="rightmargin">Правый отступ в пикселях</param>
        /// <param name="borders">Стиль отражение границы ячейки</param>
        /// <param name="gridNumber">Объединение ячеек</param>
        /// <param name="verticalmerge">1 Начало объединения 2 конец объединения</param>
        /// <param name="colorHex">Цвет ячейки</param>
        /// <returns></returns>
        public static TableCell GenerateCell(Paragraph paragraph, string width, TableWidthUnitValues type, string leftmargin = "0", string rightmargin = "0", TableVerticalAlignmentValues verticalAlignment = TableVerticalAlignmentValues.Bottom, TableCellBorders borders = null, int gridNumber = 0, int verticalmerge = 0, string colorHex = "FFFFFF")
        {
            TableCell           tableCell           = new TableCell();
            TableCellProperties tableCellProperties = new TableCellProperties();
            TableCellWidth      tableCellWidth      = new TableCellWidth()
            {
                Width = width, Type = type
            };
            GridSpan gridSpan = new GridSpan()
            {
                Val = gridNumber
            };
            TableCellVerticalAlignment tcVA = new TableCellVerticalAlignment()
            {
                Val = verticalAlignment
            };

            if (verticalmerge == 1)
            {
                VerticalMerge vertical = new VerticalMerge()
                {
                    Val = MergedCellValues.Restart
                };
                tableCellProperties.Append(vertical);
            }
            if (verticalmerge == 2)
            {
                VerticalMerge vertical = new VerticalMerge()
                {
                    Val = MergedCellValues.Continue
                };
                tableCellProperties.Append(vertical);
            }
            TableCellMargin tableCellMargin = new TableCellMargin();

            if (leftmargin != "0")
            {
                LeftMargin leftMargin = new LeftMargin()
                {
                    Width = leftmargin, Type = TableWidthUnitValues.Dxa
                };
                tableCellMargin.Append(leftMargin);
            }

            if (rightmargin != "0")
            {
                RightMargin rightMargin = new RightMargin()
                {
                    Width = rightmargin, Type = TableWidthUnitValues.Dxa
                };
                tableCellMargin.Append(rightMargin);
            }

            Shading shading = new Shading()
            {
                Color = "auto", Fill = colorHex, Val = ShadingPatternValues.Clear
            };

            tableCellProperties.Append(shading);
            tableCellProperties.Append(tcVA);
            tableCellProperties.Append(tableCellWidth);
            tableCellProperties.Append(tableCellMargin);
            tableCellProperties.Append(gridSpan);

            if (borders != null)
            {
                tableCellProperties.Append(borders);
            }

            tableCell.Append(tableCellProperties);
            tableCell.Append(paragraph);

            return(tableCell);
        }
Пример #10
0
        /// <summary>
        /// Возвращает ячейку с настройками может применятся для создания строки
        /// </summary>
        /// <param name="paragraph">Коллекция параграффов для добавления в ячейку</param>
        /// <param name="number">Количество объединенных ячеек</param>
        /// <param name="width">Длина ячейки</param>
        /// <param name="type">Тип выравнивания</param>
        /// <param name="leftmargin">Левый отступ в пикселях</param>
        /// <param name="rightmargin">Правый отступ в пикселях</param>
        /// <param name="borders">Отражение границы ячейки</param>
        /// <returns></returns>
        public static TableCell GenerateCell(ref ObservableCollection <Paragraph> paragraph, string width, TableWidthUnitValues type, string leftmargin = "0", string rightmargin = "0", TableVerticalAlignmentValues verticalAlignment = TableVerticalAlignmentValues.Bottom, TableCellBorders borders = null, int number = 0)
        {
            TableCell           tableCell           = new TableCell();
            TableCellProperties tableCellProperties = new TableCellProperties();
            TableCellWidth      tableCellWidth      = new TableCellWidth()
            {
                Width = width, Type = type
            };
            GridSpan gridSpan = new GridSpan()
            {
                Val = number
            };
            TableCellVerticalAlignment tcVA = new TableCellVerticalAlignment()
            {
                Val = verticalAlignment
            };

            TableCellMargin tableCellMargin = new TableCellMargin();

            if (leftmargin != "0")
            {
                LeftMargin leftMargin = new LeftMargin()
                {
                    Width = leftmargin, Type = TableWidthUnitValues.Dxa
                };
                tableCellMargin.Append(leftMargin);
            }

            if (rightmargin != "0")
            {
                RightMargin rightMargin = new RightMargin()
                {
                    Width = rightmargin, Type = TableWidthUnitValues.Dxa
                };
                tableCellMargin.Append(rightMargin);
            }
            tableCellProperties.Append(tcVA);
            tableCellProperties.Append(tableCellWidth);
            tableCellProperties.Append(tableCellMargin);
            tableCellProperties.Append(gridSpan);
            if (borders != null)
            {
                tableCellProperties.Append(borders);
            }

            tableCell.Append(tableCellProperties);
            AddParagraphCell(ref tableCell, ref paragraph);

            return(tableCell);
        }
 public static DocumentFormat.OpenXml.Wordprocessing.TableVerticalAlignmentValues ToOOxml(this TableVerticalAlignmentValues value)
 {
     return((DocumentFormat.OpenXml.Wordprocessing.TableVerticalAlignmentValues)(int) value);
 }