/// <summary> /// Hier wird der Knoten Text ausgewertet /// Es wird ein neues Text Objekt instanziiert und die entsprechenden Eigenschaften übergeben /// Falls eine Exception beim Casten der Werte geworfen wird, wird diese gefangen und weitergeleitet /// Bei erfolreicher Erstellung des Objekts wird dieses in dem Word Dokument eingefügt /// </summary> /// <param name="xml">Der Parameter beinhaltet einen Textknoten mit all seinen Unterknoten</param> public void Text(string xml) { XmlTextReader subReader = new XmlTextReader(new System.IO.StringReader(xml)); Text text = new Text(); while (subReader.Read()) { if (subReader.NodeType == XmlNodeType.Element) { switch (subReader.Name) { case "string": text.Content = subReader.ReadElementContentAsString(); break; case "font": text.Font = subReader.ReadElementString(); break; case "size": try { text.Size = subReader.ReadElementContentAsInt(); } catch (XmlException e) { subReader.Close(); throw new OpenDocumentException(e.Message); } break; case "paragraph": try { text.Paragraph = subReader.ReadElementContentAsInt(); } catch (XmlException e) { subReader.Close(); throw new OpenDocumentException(e.Message); } break; case "style": try { text.Style = subReader.ReadElementContentAsInt(); } catch (XmlException e) { subReader.Close(); throw new OpenDocumentException(e.Message); } break; case "color": text.Color = subReader.ReadElementString(); break; case "pageBreak": try { text.PageBreak = subReader.ReadElementContentAsBoolean(); } catch (XmlException e) { subReader.Close(); throw new OpenDocumentException(e.Message); } break; } } } subReader.Close(); doc.Text(text); }
/// <summary> /// Erstellt einen Text im Word Dokument /// durch die entsprechenden Properties des Objekts Test /// wird die gewünschte Formatierung übernommen /// </summary> /// <param name="text"></param> public void Text(Text text) { Body body = word.MainDocumentPart.Document.Body; text.Color = TransformColor(text.Color); Paragraph paragraph = new Paragraph(ParagraphSpacingAfter(text.Paragraph)); RunProperties rPr = new RunProperties(Font(text.Font)); Run run_paragraph = new Run(); StyleCreator(rPr, text.Style); rPr.Append(FontColor(text.Color), Size(text.Size)); run_paragraph.Append(rPr); if (text.PageBreak == true) run_paragraph.Append(PBreak()); run_paragraph.Append(InsertText(text.Content)); paragraph.Append(run_paragraph); body.Append(paragraph); }