public float MeasureTextElementWidth(TextElement textElement) { Chunk textChunk = new Chunk(textElement.Text); textChunk.Font = new FontStyleDefinition(textElement.FontStyle).Font; textChunk.Font.Size = textElement.FontSize.Points; return(textChunk.GetWidthPoint()); }
/// <summary> /// Converts a textelement to a list with atomic textelements. /// </summary> /// <param name="textElement">Textelement to convert.</param> /// <returns>List with the resulting textelements.</returns> public TextElementCollection ConvertToTextElements(TextElement textElement) { TextElementCollection result = new TextElementCollection(); SplitCharacterList splitCharacterList = new SplitCharacterList(); splitCharacterList.Add(' ', SplitAction.Remove); splitCharacterList.Add('-', SplitAction.Add); splitCharacterList.Add('.', SplitAction.Add); splitCharacterList.Add(',', SplitAction.Add); TextElementCollection textElements = textElement.Split(splitCharacterList); return(textElements); }
public TextElement ParseText(TextElement textElement) { return(null); //textElement.Parent.Page }
public void Add(TextElement textelement) { _textElements.Add(textelement); }
private void ProcessContent(XmlContent xmlContent, Content businessContent) { if (xmlContent != null) { foreach (IXmlElement dataElement in xmlContent.Elements) { switch (dataElement.GetType().Name.ToLower()) { case "text": var dataText = (Data.Xml.Elements.Text)dataElement; var bText = new Text.Text(businessContent, dataElement.Key, string.IsNullOrEmpty(dataText.Rotation) ? 0 : float.Parse(dataText.Rotation)); bText.LayoutContainer = new LayoutContainer(bText, dataElement.XmlLayoutDefinition); foreach (Paragraph dParagraph in dataText.Paragraphs) { var bParagraph = new Text.Paragraph(bText, dParagraph.Leading, dParagraph.Alignment); bParagraph.Offset = dParagraph.Offset != null ? new Unit(dParagraph.Offset) : null; bParagraph.Symbol = dParagraph.Symbol != null ? dParagraph.Symbol : null; bText.Add(bParagraph); foreach (TextElement dTextElement in dParagraph.TextElements) { var bTextElement = new Text.TextElement(bParagraph, dTextElement .Value, dTextElement .Font, dTextElement .Style, dTextElement . Fontsize, dTextElement .Color); if (!string.IsNullOrEmpty(dTextElement.Charspacing)) { bTextElement.CharSpacing = new Unit(dTextElement.Charspacing); } bParagraph.Add(bTextElement); } } if (!string.IsNullOrEmpty(dataElement.ZOrder)) { bText.ZOrder = Convert.ToUInt16(dataElement.ZOrder); } if (!string.IsNullOrEmpty(dataText.OverflowElement)) { bText.SetOverflowElement(dataText.OverflowElement); } bText.SetTextlines(); businessContent.Elements.Add(bText); break; case "line": var dataLine = (Data.Xml.Elements.Line)dataElement; var bLine = new Line(businessContent, dataElement.Key, dataLine.Width, dataLine.Color); bLine.LayoutContainer = new LayoutContainer(bLine, dataElement.XmlLayoutDefinition); if (!string.IsNullOrEmpty(dataElement.ZOrder)) { bLine.ZOrder = Convert.ToUInt16(dataElement.ZOrder); } businessContent.Elements.Add(bLine); break; case "image": var dataImage = (Data.Xml.Elements.Image)dataElement; var bImage = new Image(businessContent, dataImage.Key, dataImage.Path); bImage.LayoutContainer = new LayoutContainer(bImage, dataElement.XmlLayoutDefinition); bImage.ConvertDPI(); if (!string.IsNullOrEmpty(dataElement.ZOrder)) { bImage.ZOrder = Convert.ToUInt16(dataElement.ZOrder); } businessContent.Elements.Add(bImage); break; case "rectangle": var dataRectangle = (Data.Xml.Elements.Rectangle)dataElement; var bRectangle = new Rectangle(businessContent, dataRectangle.Key, dataRectangle.Bordercolor, dataRectangle.Borderwidth); bRectangle.LayoutContainer = new LayoutContainer(bRectangle, dataElement.XmlLayoutDefinition); bRectangle.Contents = new Content(bRectangle); if (dataRectangle.XmlContent != null) { ProcessContent(dataRectangle.XmlContent, bRectangle.Contents); bRectangle.Contents.UpdateContentHeight(); bRectangle.LayoutContainer.TryResize(bRectangle.Layout.Width, bRectangle.Contents.Height); bRectangle.Relocate(); } if (!string.IsNullOrEmpty(dataRectangle.Fillcolor)) { bRectangle.FillColor = businessContent.Page.Document.Colors[dataRectangle.Fillcolor]; } if (!string.IsNullOrEmpty(dataRectangle.Roundness)) { bRectangle.Roundness = new Unit(dataRectangle.Roundness); } if (!string.IsNullOrEmpty(dataElement.ZOrder)) { bRectangle.ZOrder = Convert.ToUInt16(dataElement.ZOrder); } businessContent.Elements.Add(bRectangle); break; } } } }