public void WriteWebsiteHyperlink(Paragraph paragraph, string text, Uri uri, string relationshipId) { Hyperlink link = new Hyperlink() { Id = relationshipId }; Run run = new Run(); RunProperties runProperties = new RunProperties(); RunStyle runStyle = new RunStyle() { Val = "Hyperlink" }; runProperties.Append(runStyle); Text text1 = new Text() { Text = text }; run.Append(runProperties); run.Append(text1); link.Append(run); paragraph.Append(link); mainDocumentPart.AddHyperlinkRelationship(uri, true, relationshipId); }
public Hyperlink CreateUrlHyperlink(MainDocumentPart mainPart, string text, string url, string style) { RunProperties rp = new RunProperties( new RunStyle() { Val = style }); HyperlinkRelationship rel = mainPart.AddHyperlinkRelationship(new Uri(url), true); var hyperlink = new Hyperlink( new ProofError() { Type = ProofingErrorValues.GrammarStart }, new Run( rp, new Text(text))) { History = true, Id = rel.Id }; return(hyperlink); }
private static Hyperlink CreateHyperlink(string text, string uri, MainDocumentPart main) { var hr = main.AddHyperlinkRelationship(new Uri(uri), true); return(new Hyperlink( new Run( new RunProperties( new RunPropertiesBaseStyle( new Underline { Val = new EnumValue <UnderlineValues>(UnderlineValues.Single) }, new Color { Val = "0000FF" })), new Text(text))) { Id = hr.Id, TargetFrame = "_blank" }); }
private void CreateParts(WordprocessingDocument document) { DocxBase.CurrentTitle = DocxServiceProvinceRes.Title; ExtendedFilePropertiesPart extendedFilePropertiesPart1 = document.AddNewPart <ExtendedFilePropertiesPart>("rId3"); DocxBase.GenerateExtendedFilePropertiesPart1Content(extendedFilePropertiesPart1); MainDocumentPart mainDocumentPart1 = document.AddMainDocumentPart(); GenerateMainDocumentPart1Content(mainDocumentPart1); FontTablePart fontTablePart1 = mainDocumentPart1.AddNewPart <FontTablePart>("rId13"); DocxBase.GenerateFontTablePart1Content(fontTablePart1); StyleDefinitionsPart styleDefinitionsPart1 = mainDocumentPart1.AddNewPart <StyleDefinitionsPart>("rId3"); DocxBase.GenerateStyleDefinitionsPart1Content(styleDefinitionsPart1); EndnotesPart endnotesPart1 = mainDocumentPart1.AddNewPart <EndnotesPart>("rId7"); DocxBase.GenerateEndnotesPart1Content(endnotesPart1); FooterPart footerPart1 = mainDocumentPart1.AddNewPart <FooterPart>("rId12"); DocxBase.GenerateFooterPart1Content(footerPart1); NumberingDefinitionsPart numberingDefinitionsPart1 = mainDocumentPart1.AddNewPart <NumberingDefinitionsPart>("rId2"); DocxBase.GenerateNumberingDefinitionsPart1Content(numberingDefinitionsPart1); CustomXmlPart customXmlPart1 = mainDocumentPart1.AddNewPart <CustomXmlPart>("application/xml", "rId1"); DocxBase.GenerateCustomXmlPart1Content(customXmlPart1); CustomXmlPropertiesPart customXmlPropertiesPart1 = customXmlPart1.AddNewPart <CustomXmlPropertiesPart>("rId1"); DocxBase.GenerateCustomXmlPropertiesPart1Content(customXmlPropertiesPart1); FootnotesPart footnotesPart1 = mainDocumentPart1.AddNewPart <FootnotesPart>("rId6"); DocxBase.GenerateFootnotesPart1Content(footnotesPart1); HeaderPart headerPart1 = mainDocumentPart1.AddNewPart <HeaderPart>("rId11"); DocxBase.GenerateHeaderPart1Content(headerPart1); WebSettingsPart webSettingsPart1 = mainDocumentPart1.AddNewPart <WebSettingsPart>("rId5"); DocxBase.GenerateWebSettingsPart1Content(webSettingsPart1); //ChartPart chartPart1 = mainDocumentPart1.AddNewPart<ChartPart>("rId10"); //DocxBase.GenerateChartPart1Content(chartPart1); //EmbeddedPackagePart embeddedPackagePart1 = chartPart1.AddNewPart<EmbeddedPackagePart>("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "rId3"); //DocxBase.GenerateEmbeddedPackagePart1Content(embeddedPackagePart1); //ChartColorStylePart chartColorStylePart1 = chartPart1.AddNewPart<ChartColorStylePart>("rId2"); //DocxBase.GenerateChartColorStylePart1Content(chartColorStylePart1); //ChartStylePart chartStylePart1 = chartPart1.AddNewPart<ChartStylePart>("rId1"); //DocxBase.GenerateChartStylePart1Content(chartStylePart1); DocumentSettingsPart documentSettingsPart1 = mainDocumentPart1.AddNewPart <DocumentSettingsPart>("rId4"); DocxBase.GenerateDocumentSettingsPart1Content(documentSettingsPart1); //ChartPart chartPart2 = mainDocumentPart1.AddNewPart<ChartPart>("rId9"); //DocxBase.GenerateChartPart2Content(chartPart2); //EmbeddedPackagePart embeddedPackagePart2 = chartPart2.AddNewPart<EmbeddedPackagePart>("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "rId3"); //DocxBase.GenerateEmbeddedPackagePart2Content(embeddedPackagePart2); //ChartColorStylePart chartColorStylePart2 = chartPart2.AddNewPart<ChartColorStylePart>("rId2"); //DocxBase.GenerateChartColorStylePart2Content(chartColorStylePart2); //ChartStylePart chartStylePart2 = chartPart2.AddNewPart<ChartStylePart>("rId1"); //DocxBase.GenerateChartStylePart2Content(chartStylePart2); ThemePart themePart1 = mainDocumentPart1.AddNewPart <ThemePart>("rId14"); DocxBase.GenerateThemePart1Content(themePart1); foreach (UsedHyperlink usedHyperlink in DocxBase.UsedHyperlinkList) { mainDocumentPart1.AddHyperlinkRelationship(new System.Uri(usedHyperlink.URL, System.UriKind.Absolute), true, usedHyperlink.Id.ToString()); } DocxBase.SetPackageProperties(document); }
private OpenXmlElement Process(XmlReader xmlReader, OpenXmlElement current) { Paragraph cPara = current as Paragraph; Run cRun = current as Run; Hyperlink cHyperlink = current as Hyperlink; Table cTable = current as Table; TableRow cTableRow = current as TableRow; TableCell cTableCell = current as TableCell; if (xmlReader.NodeType == XmlNodeType.Element) { // Do something for elements switch (xmlReader.Name) { case "p": if (cPara != null) { break; } Paragraph newParagraph = new Paragraph( new ParagraphProperties( new ParagraphStyleId() { Val = Properties.Settings.Default.TemplateDescriptionStyle })); return(NewChild(current, newParagraph)); case "b": if (cPara != null) { Run newRun = new Run(); AddBoldToRun(newRun); return(NewChild(current, newRun)); } else if (cRun != null) { AddBoldToRun(cRun); return(cRun); } break; case "i": if (cPara != null) { Run newRun = new Run(); AddItalicsToRun(newRun); return(NewChild(current, newRun)); } else if (cRun != null) { AddItalicsToRun(cRun); return(cRun); } break; case "a": string hrefAttr = xmlReader.GetAttribute("href"); Hyperlink newHyperlink = new Hyperlink( new ProofError() { Type = ProofingErrorValues.GrammarStart }); if (!string.IsNullOrEmpty(hrefAttr)) { Template foundTemplate = null; if (hrefAttr.StartsWith("#") && hrefAttr.Length > 1) { foundTemplate = this.tdb.Templates.SingleOrDefault(y => y.Oid == hrefAttr.Substring(1)); } if (foundTemplate != null) { newHyperlink.Anchor = foundTemplate.Bookmark; newHyperlink.Append( DocHelper.CreateRun( string.Format("{0} ({1})", foundTemplate.Name, foundTemplate.Oid))); } else { try { HyperlinkRelationship rel = mainPart.AddHyperlinkRelationship(new Uri(hrefAttr), true); newHyperlink.History = true; newHyperlink.Id = rel.Id; } catch { } } } if (cPara != null) { return(NewChild(current, newHyperlink)); } break; case "ul": this.currentListLevel++; this.currentListStyle = "ListBullet"; if (current is Paragraph) { current = current.Parent; } break; case "ol": this.currentListLevel++; this.currentListStyle = "ListNumber"; if (current is Paragraph) { current = current.Parent; } break; case "li": Paragraph bulletPara = new Paragraph( new ParagraphProperties( new ParagraphStyleId() { Val = this.currentListStyle })); return(NewChild(current, bulletPara)); case "table": Table newTable = new Table( new TableProperties(), new TableGrid()); return(NewChild(current, newTable)); case "thead": this.currentIsTableHeader = true; break; case "tr": if (cTable != null) { TableRow newTableRow = new TableRow(); if (this.currentIsTableHeader) { newTableRow.Append( new TableRowProperties( new CantSplit(), new TableHeader())); } return(NewChild(current, newTableRow)); } break; case "td": if (cTableRow != null) { TableCell newCell = new TableCell(); if (this.currentIsTableHeader) { newCell.Append( new TableCellProperties() { Shading = new Shading() { Val = new EnumValue <ShadingPatternValues>(ShadingPatternValues.Clear), Color = new StringValue("auto"), Fill = new StringValue("E6E6E6") } }); } // Cells' contents should be within a paragraph Paragraph newPara = new Paragraph(); newCell.AppendChild(newPara); current.Append(newCell); return(newPara); } break; case "span": if (cPara != null) { Run newRun = new Run(); return(NewChild(current, newRun)); } break; case "root": case "tbody": break; default: throw new Exception("Unsupported wiki syntax"); } } else if (xmlReader.NodeType == XmlNodeType.Text) { string text = xmlReader.Value .Replace(" ", " "); if (current is Paragraph || current is TableCell) { current.Append(DocHelper.CreateRun(text)); } else if (cHyperlink != null) { if (!(cHyperlink.LastChild is Run)) { cHyperlink.Append(DocHelper.CreateRun(text)); } } else if (cRun != null) { cRun.Append(new Text(text)); } } else if (xmlReader.NodeType == XmlNodeType.EndElement) { if (xmlReader.Name == "thead") { this.currentIsTableHeader = false; return(current); } else if (xmlReader.Name == "tbody") { return(current); } else if (xmlReader.Name == "td") { // Expect that we are in a paragraph within a table cell, and when TD ends, we need to return two levels higher if (cPara != null && cPara.Parent is TableCell) { return(current.Parent.Parent); } } else if (xmlReader.Name == "a") { // Make sure all runs within a hyperlink have the correct style foreach (var cChildRun in current.ChildElements.OfType <Run>()) { cChildRun.RunProperties.RunStyle = new RunStyle() { Val = Properties.Settings.Default.LinkStyle }; } } else if (xmlReader.Name == "ul") { this.currentListLevel--; } if (current.Parent == null) { return(current); } return(current.Parent); } return(current); }