|
|
|
|
|
|
|
|
evenAndOddHeaders.Remove();
|
|
|
evenAndOddHeaders.Remove();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(settingsPart.GetStream()))
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(new PackagePartStream(settingsPart.GetStream())))
|
|
|
settings.Save(tw);
|
|
|
settings.Save(tw);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
using (Stream s_read = remote_pp.GetStream())
|
|
|
using (Stream s_read = remote_pp.GetStream())
|
|
|
{
|
|
|
{
|
|
|
using (Stream s_write = new_pp.GetStream(FileMode.Create))
|
|
|
|
|
|
|
|
|
using (Stream s_write = new PackagePartStream(new_pp.GetStream(FileMode.Create)))
|
|
|
{
|
|
|
{
|
|
|
byte[] buffer = new byte[32768];
|
|
|
byte[] buffer = new byte[32768];
|
|
|
int read;
|
|
|
int read;
|
|
|
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
// Save the modified local custom styles.xml file.
|
|
|
// Save the modified local custom styles.xml file.
|
|
|
using (TextWriter tw = new StreamWriter(local_pp.GetStream(FileMode.Create, FileAccess.Write)))
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(new PackagePartStream(local_pp.GetStream(FileMode.Create, FileAccess.Write))))
|
|
|
local_custom_document.Save(tw, SaveOptions.None);
|
|
|
local_custom_document.Save(tw, SaveOptions.None);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
using (Stream s_read = pp.GetStream())
|
|
|
using (Stream s_read = pp.GetStream())
|
|
|
{
|
|
|
{
|
|
|
using (Stream s_write = new_pp.GetStream(FileMode.Create))
|
|
|
|
|
|
|
|
|
using (Stream s_write = new PackagePartStream(new_pp.GetStream(FileMode.Create)))
|
|
|
{
|
|
|
{
|
|
|
byte[] buffer = new byte[32768];
|
|
|
byte[] buffer = new byte[32768];
|
|
|
int read;
|
|
|
int read;
|
|
|
|
|
|
|
|
|
wordStyles.Element(w + "styles").Add(style);
|
|
|
wordStyles.Element(w + "styles").Add(style);
|
|
|
|
|
|
|
|
|
// Save the styles document.
|
|
|
// Save the styles document.
|
|
|
using (TextWriter tw = new StreamWriter(package.GetPart(wordStylesUri).GetStream()))
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(new PackagePartStream(package.GetPart(wordStylesUri).GetStream())))
|
|
|
wordStyles.Save(tw);
|
|
|
wordStyles.Save(tw);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
// Save the main document
|
|
|
// Save the main document
|
|
|
using (TextWriter tw = new StreamWriter(mainDocumentPart.GetStream(FileMode.Create, FileAccess.Write)))
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(new PackagePartStream(mainDocumentPart.GetStream(FileMode.Create, FileAccess.Write))))
|
|
|
mainDoc.Save(tw, SaveOptions.None);
|
|
|
mainDoc.Save(tw, SaveOptions.None);
|
|
|
#endregion
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{
|
|
|
{
|
|
|
using (
|
|
|
using (
|
|
|
StreamWriter tw = new StreamWriter(
|
|
|
StreamWriter tw = new StreamWriter(
|
|
|
globalRelsPart.GetStream(FileMode.Create, FileAccess.Write), Encoding.UTF8))
|
|
|
|
|
|
|
|
|
new PackagePartStream(globalRelsPart.GetStream(FileMode.Create, FileAccess.Write)), Encoding.UTF8))
|
|
|
{
|
|
|
{
|
|
|
tw.Write(tr.ReadToEnd());
|
|
|
tw.Write(tr.ReadToEnd());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
{
|
|
|
{
|
|
|
using (
|
|
|
using (
|
|
|
StreamWriter tw = new StreamWriter(
|
|
|
StreamWriter tw = new StreamWriter(
|
|
|
nativePart.GetStream(FileMode.Create, FileAccess.Write), tr.CurrentEncoding))
|
|
|
|
|
|
|
|
|
new PackagePartStream(nativePart.GetStream(FileMode.Create, FileAccess.Write)), tr.CurrentEncoding))
|
|
|
{
|
|
|
{
|
|
|
tw.Write(tr.ReadToEnd());
|
|
|
tw.Write(tr.ReadToEnd());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
}
|
|
|
PackagePart documentNewPart = this.package.CreatePart(
|
|
|
PackagePart documentNewPart = this.package.CreatePart(
|
|
|
documentPart.Uri, mainContentType, documentPart.CompressionOption);
|
|
|
documentPart.Uri, mainContentType, documentPart.CompressionOption);
|
|
|
using (XmlWriter xw = XmlWriter.Create(documentNewPart.GetStream(FileMode.Create, FileAccess.Write)))
|
|
|
|
|
|
|
|
|
using (XmlWriter xw = XmlWriter.Create(new PackagePartStream(documentNewPart.GetStream(FileMode.Create, FileAccess.Write))))
|
|
|
{
|
|
|
{
|
|
|
documentDoc.WriteTo(xw);
|
|
|
documentDoc.WriteTo(xw);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
word_styles.Element(w + "styles").Add(style);
|
|
|
word_styles.Element(w + "styles").Add(style);
|
|
|
|
|
|
|
|
|
// Save the styles document.
|
|
|
// Save the styles document.
|
|
|
using (TextWriter tw = new StreamWriter(package.GetPart(word_styles_Uri).GetStream()))
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(new PackagePartStream(package.GetPart(word_styles_Uri).GetStream())))
|
|
|
word_styles.Save(tw);
|
|
|
word_styles.Save(tw);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
// Save the main document
|
|
|
// Save the main document
|
|
|
using (TextWriter tw = new StreamWriter(headerPart.GetStream(FileMode.Create, FileAccess.Write)))
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(new PackagePartStream(headerPart.GetStream(FileMode.Create, FileAccess.Write))))
|
|
|
header.Save(tw, SaveOptions.None);
|
|
|
header.Save(tw, SaveOptions.None);
|
|
|
|
|
|
|
|
|
string type;
|
|
|
string type;
|
|
|
|
|
|
|
|
|
PackageRelationship rel = mainPart.CreateRelationship(img.Uri, TargetMode.Internal, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image");
|
|
|
PackageRelationship rel = mainPart.CreateRelationship(img.Uri, TargetMode.Internal, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image");
|
|
|
|
|
|
|
|
|
// Open a Stream to the newly created Image part.
|
|
|
// Open a Stream to the newly created Image part.
|
|
|
using (Stream stream = img.GetStream(FileMode.Create, FileAccess.Write))
|
|
|
|
|
|
|
|
|
using (Stream stream = new PackagePartStream(img.GetStream(FileMode.Create, FileAccess.Write)))
|
|
|
{
|
|
|
{
|
|
|
// Using the Stream to the real image, copy this streams data into the newly create Image part.
|
|
|
// Using the Stream to the real image, copy this streams data into the newly create Image part.
|
|
|
using (newImageStream)
|
|
|
using (newImageStream)
|
|
|
|
|
|
|
|
|
Headers headers = Headers;
|
|
|
Headers headers = Headers;
|
|
|
|
|
|
|
|
|
// Save the main document
|
|
|
// Save the main document
|
|
|
using (TextWriter tw = new StreamWriter(mainPart.GetStream(FileMode.Create, FileAccess.Write)))
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(new PackagePartStream(mainPart.GetStream(FileMode.Create, FileAccess.Write))))
|
|
|
mainDoc.Save(tw, SaveOptions.None);
|
|
|
mainDoc.Save(tw, SaveOptions.None);
|
|
|
|
|
|
|
|
|
if (settings == null)
|
|
|
if (settings == null)
|
|
|
|
|
|
|
|
|
mainPart.GetRelationship(evenHeaderRef).TargetUri
|
|
|
mainPart.GetRelationship(evenHeaderRef).TargetUri
|
|
|
);
|
|
|
);
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(package.GetPart(target).GetStream(FileMode.Create, FileAccess.Write)))
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(new PackagePartStream(package.GetPart(target).GetStream(FileMode.Create, FileAccess.Write))))
|
|
|
{
|
|
|
{
|
|
|
new XDocument
|
|
|
new XDocument
|
|
|
(
|
|
|
(
|
|
|
|
|
|
|
|
|
);
|
|
|
);
|
|
|
|
|
|
|
|
|
// Save header1
|
|
|
// Save header1
|
|
|
using (TextWriter tw = new StreamWriter(package.GetPart(target).GetStream(FileMode.Create, FileAccess.Write)))
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(new PackagePartStream(package.GetPart(target).GetStream(FileMode.Create, FileAccess.Write))))
|
|
|
{
|
|
|
{
|
|
|
new XDocument
|
|
|
new XDocument
|
|
|
(
|
|
|
(
|
|
|
|
|
|
|
|
|
);
|
|
|
);
|
|
|
|
|
|
|
|
|
// Save header3
|
|
|
// Save header3
|
|
|
using (TextWriter tw = new StreamWriter(package.GetPart(target).GetStream(FileMode.Create, FileAccess.Write)))
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(new PackagePartStream(package.GetPart(target).GetStream(FileMode.Create, FileAccess.Write))))
|
|
|
{
|
|
|
{
|
|
|
new XDocument
|
|
|
new XDocument
|
|
|
(
|
|
|
(
|
|
|
|
|
|
|
|
|
);
|
|
|
);
|
|
|
|
|
|
|
|
|
// Save header1
|
|
|
// Save header1
|
|
|
using (TextWriter tw = new StreamWriter(package.GetPart(target).GetStream(FileMode.Create, FileAccess.Write)))
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(new PackagePartStream(package.GetPart(target).GetStream(FileMode.Create, FileAccess.Write))))
|
|
|
{
|
|
|
{
|
|
|
new XDocument
|
|
|
new XDocument
|
|
|
(
|
|
|
(
|
|
|
|
|
|
|
|
|
);
|
|
|
);
|
|
|
|
|
|
|
|
|
// Save header2
|
|
|
// Save header2
|
|
|
using (TextWriter tw = new StreamWriter(package.GetPart(target).GetStream(FileMode.Create, FileAccess.Write)))
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(new PackagePartStream(package.GetPart(target).GetStream(FileMode.Create, FileAccess.Write))))
|
|
|
{
|
|
|
{
|
|
|
new XDocument
|
|
|
new XDocument
|
|
|
(
|
|
|
(
|
|
|
|
|
|
|
|
|
);
|
|
|
);
|
|
|
|
|
|
|
|
|
// Save header3
|
|
|
// Save header3
|
|
|
using (TextWriter tw = new StreamWriter(package.GetPart(target).GetStream(FileMode.Create, FileAccess.Write)))
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(new PackagePartStream(package.GetPart(target).GetStream(FileMode.Create, FileAccess.Write))))
|
|
|
{
|
|
|
{
|
|
|
new XDocument
|
|
|
new XDocument
|
|
|
(
|
|
|
(
|
|
|
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
// Save the settings document.
|
|
|
// Save the settings document.
|
|
|
using (TextWriter tw = new StreamWriter(settingsPart.GetStream(FileMode.Create, FileAccess.Write)))
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(new PackagePartStream(settingsPart.GetStream(FileMode.Create, FileAccess.Write))))
|
|
|
settings.Save(tw, SaveOptions.None);
|
|
|
settings.Save(tw, SaveOptions.None);
|
|
|
|
|
|
|
|
|
if (endnotesPart != null)
|
|
|
if (endnotesPart != null)
|
|
|
{
|
|
|
{
|
|
|
using (TextWriter tw = new StreamWriter(endnotesPart.GetStream(FileMode.Create, FileAccess.Write)))
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(new PackagePartStream(endnotesPart.GetStream(FileMode.Create, FileAccess.Write))))
|
|
|
endnotes.Save(tw, SaveOptions.None);
|
|
|
endnotes.Save(tw, SaveOptions.None);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
if (footnotesPart != null)
|
|
|
if (footnotesPart != null)
|
|
|
{
|
|
|
{
|
|
|
using (TextWriter tw = new StreamWriter(footnotesPart.GetStream(FileMode.Create, FileAccess.Write)))
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(new PackagePartStream(footnotesPart.GetStream(FileMode.Create, FileAccess.Write))))
|
|
|
footnotes.Save(tw, SaveOptions.None);
|
|
|
footnotes.Save(tw, SaveOptions.None);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
if (stylesPart != null)
|
|
|
if (stylesPart != null)
|
|
|
{
|
|
|
{
|
|
|
using (TextWriter tw = new StreamWriter(stylesPart.GetStream(FileMode.Create, FileAccess.Write)))
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(new PackagePartStream(stylesPart.GetStream(FileMode.Create, FileAccess.Write))))
|
|
|
styles.Save(tw, SaveOptions.None);
|
|
|
styles.Save(tw, SaveOptions.None);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
if (stylesWithEffectsPart != null)
|
|
|
if (stylesWithEffectsPart != null)
|
|
|
{
|
|
|
{
|
|
|
using (TextWriter tw = new StreamWriter(stylesWithEffectsPart.GetStream(FileMode.Create, FileAccess.Write)))
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(new PackagePartStream(stylesWithEffectsPart.GetStream(FileMode.Create, FileAccess.Write))))
|
|
|
stylesWithEffects.Save(tw, SaveOptions.None);
|
|
|
stylesWithEffects.Save(tw, SaveOptions.None);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
if (numberingPart != null)
|
|
|
if (numberingPart != null)
|
|
|
{
|
|
|
{
|
|
|
using (TextWriter tw = new StreamWriter(numberingPart.GetStream(FileMode.Create, FileAccess.Write)))
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(new PackagePartStream(numberingPart.GetStream(FileMode.Create, FileAccess.Write))))
|
|
|
numbering.Save(tw, SaveOptions.None);
|
|
|
numbering.Save(tw, SaveOptions.None);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
if (fontTablePart != null)
|
|
|
if (fontTablePart != null)
|
|
|
{
|
|
|
{
|
|
|
using (TextWriter tw = new StreamWriter(fontTablePart.GetStream(FileMode.Create, FileAccess.Write)))
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(new PackagePartStream(fontTablePart.GetStream(FileMode.Create, FileAccess.Write))))
|
|
|
fontTable.Save(tw, SaveOptions.None);
|
|
|
fontTable.Save(tw, SaveOptions.None);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
corePropDoc.Root.Add(new XElement(XName.Get(propertyLocalName, propertyNamespace.NamespaceName), propertyValue));
|
|
|
corePropDoc.Root.Add(new XElement(XName.Get(propertyLocalName, propertyNamespace.NamespaceName), propertyValue));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(corePropPart.GetStream(FileMode.Create, FileAccess.Write)))
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(new PackagePartStream(corePropPart.GetStream(FileMode.Create, FileAccess.Write))))
|
|
|
{
|
|
|
{
|
|
|
corePropDoc.Save(tw);
|
|
|
corePropDoc.Save(tw);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(pp.GetStream(FileMode.Create, FileAccess.Write)))
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(new PackagePartStream(pp.GetStream(FileMode.Create, FileAccess.Write))))
|
|
|
header.Save(tw);
|
|
|
header.Save(tw);
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(pp.GetStream(FileMode.Create, FileAccess.Write)))
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(new PackagePartStream(pp.GetStream(FileMode.Create, FileAccess.Write))))
|
|
|
footer.Save(tw);
|
|
|
footer.Save(tw);
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
);
|
|
|
);
|
|
|
|
|
|
|
|
|
// Save the custom properties
|
|
|
// Save the custom properties
|
|
|
using (TextWriter tw = new StreamWriter(customPropPart.GetStream(FileMode.Create, FileAccess.Write)))
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(new PackagePartStream(customPropPart.GetStream(FileMode.Create, FileAccess.Write))))
|
|
|
customPropDoc.Save(tw, SaveOptions.None);
|
|
|
customPropDoc.Save(tw, SaveOptions.None);
|
|
|
|
|
|
|
|
|
// Refresh all fields in this document which display this custom property.
|
|
|
// Refresh all fields in this document which display this custom property.
|
|
|
|
|
|
|
|
|
PackageRelationship rel = mainPart.CreateRelationship(chartPackagePart.Uri, TargetMode.Internal, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart", relID);
|
|
|
PackageRelationship rel = mainPart.CreateRelationship(chartPackagePart.Uri, TargetMode.Internal, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart", relID);
|
|
|
|
|
|
|
|
|
// Save a chart info the chartPackagePart
|
|
|
// Save a chart info the chartPackagePart
|
|
|
using (TextWriter tw = new StreamWriter(chartPackagePart.GetStream(FileMode.Create, FileAccess.Write)))
|
|
|
|
|
|
|
|
|
using (TextWriter tw = new StreamWriter(new PackagePartStream(chartPackagePart.GetStream(FileMode.Create, FileAccess.Write))))
|
|
|
chart.Xml.Save(tw);
|
|
|
chart.Xml.Save(tw);
|
|
|
|
|
|
|
|
|
// Insert a new chart into a paragraph.
|
|
|
// Insert a new chart into a paragraph.
|