|
|
|
@@ -4378,6 +4378,60 @@ namespace Novacode |
|
|
|
p.Xml.Add(chartElement);
|
|
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Insert a chart in document after paragraph
|
|
|
|
/// </summary>
|
|
|
|
public void InsertChartAfterParagraph(Chart chart, Paragraph paragraph) {
|
|
|
|
// Create a new chart part uri.
|
|
|
|
String chartPartUriPath = String.Empty;
|
|
|
|
Int32 chartIndex = 1;
|
|
|
|
do {
|
|
|
|
chartPartUriPath = String.Format
|
|
|
|
(
|
|
|
|
"/word/charts/chart{0}.xml",
|
|
|
|
chartIndex
|
|
|
|
);
|
|
|
|
chartIndex++;
|
|
|
|
} while (package.PartExists(new Uri(chartPartUriPath, UriKind.Relative)));
|
|
|
|
|
|
|
|
// Create chart part.
|
|
|
|
PackagePart chartPackagePart = package.CreatePart(new Uri(chartPartUriPath, UriKind.Relative), "application/vnd.openxmlformats-officedocument.drawingml.chart+xml", CompressionOption.Normal);
|
|
|
|
|
|
|
|
// Create a new chart relationship
|
|
|
|
String relID = GetNextFreeRelationshipID();
|
|
|
|
PackageRelationship rel = mainPart.CreateRelationship(chartPackagePart.Uri, TargetMode.Internal, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart", relID);
|
|
|
|
|
|
|
|
// Save a chart info the chartPackagePart
|
|
|
|
using (TextWriter tw = new StreamWriter(chartPackagePart.GetStream(FileMode.Create, FileAccess.Write)))
|
|
|
|
chart.Xml.Save(tw);
|
|
|
|
|
|
|
|
// Insert a new chart into a paragraph.
|
|
|
|
Paragraph p = paragraph;
|
|
|
|
XElement chartElement = new XElement(
|
|
|
|
XName.Get("r", DocX.w.NamespaceName),
|
|
|
|
new XElement(
|
|
|
|
XName.Get("drawing", DocX.w.NamespaceName),
|
|
|
|
new XElement(
|
|
|
|
XName.Get("inline", DocX.wp.NamespaceName),
|
|
|
|
new XElement(XName.Get("extent", DocX.wp.NamespaceName), new XAttribute("cx", "5486400"), new XAttribute("cy", "3200400")),
|
|
|
|
new XElement(XName.Get("effectExtent", DocX.wp.NamespaceName), new XAttribute("l", "0"), new XAttribute("t", "0"), new XAttribute("r", "19050"), new XAttribute("b", "19050")),
|
|
|
|
new XElement(XName.Get("docPr", DocX.wp.NamespaceName), new XAttribute("id", "1"), new XAttribute("name", "chart")),
|
|
|
|
new XElement(
|
|
|
|
XName.Get("graphic", DocX.a.NamespaceName),
|
|
|
|
new XElement(
|
|
|
|
XName.Get("graphicData", DocX.a.NamespaceName),
|
|
|
|
new XAttribute("uri", DocX.c.NamespaceName),
|
|
|
|
new XElement(
|
|
|
|
XName.Get("chart", DocX.c.NamespaceName),
|
|
|
|
new XAttribute(XName.Get("id", DocX.r.NamespaceName), relID)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
));
|
|
|
|
p.Xml.Add(chartElement);
|
|
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Inserts a default TOC into the current document.
|
|
|
|
/// Title: Table of contents
|