Ribbon wird erstellt, wenn ich das WordProcessingDocument aus dem Pfad einer Docx-Datei öffne. Es wird jedoch nicht erstellt, wenn ich dasselbe aus dem Byte-Inhalt der docx-Datei öffne. Die unten zeigt nicht das Band in der docx-Datei auf: -Ribbon wird nicht erstellt, wenn WordprocessingDocument aus Byte erstellt wird []
public void AddRibbonToTemplate(byte[] templateContent)
{
string sanitizedRibbonXml = GetRibbonXML().ToString().Replace("xmlns=\"\"", "");
MemoryStream stream = new MemoryStream();
stream.Write(templateContent, 0, templateContent.Length);
using (WordprocessingDocument myDoc = WordprocessingDocument.Open(stream, true))
{
MainDocumentPart mainPart = myDoc.MainDocumentPart;
if (myDoc.GetPartsCountOfType<RibbonExtensibilityPart>() > 0)
myDoc.DeletePart(myDoc.GetPartsOfType<RibbonExtensibilityPart>().First());
RibbonExtensibilityPart ribbonExtensibilityPart = myDoc.AddNewPart<RibbonExtensibilityPart>();
ribbonExtensibilityPart.CustomUI = new DocumentFormat.OpenXml.Office.CustomUI.CustomUI(sanitizedRibbonXml);
myDoc.CreateRelationshipToPart(ribbonExtensibilityPart);
}
stream.Close();
}
Die folgende Abbildung zeigt die Band: -
public void AddRibbonToTemplate(string documentFileName)
{
string sanitizedRibbonXml = GetRibbonXML().ToString().Replace("xmlns=\"\"", "");
using (WordprocessingDocument myDoc = WordprocessingDocument.Open(documentFileName, true))
{
MainDocumentPart mainPart = myDoc.MainDocumentPart;
if (myDoc.GetPartsCountOfType<RibbonExtensibilityPart>() > 0)
myDoc.DeletePart(myDoc.GetPartsOfType<RibbonExtensibilityPart>().First());
RibbonExtensibilityPart ribbonExtensibilityPart = myDoc.AddNewPart<RibbonExtensibilityPart>();
ribbonExtensibilityPart.CustomUI = new DocumentFormat.OpenXml.Office.CustomUI.CustomUI(sanitizedRibbonXml);
myDoc.CreateRelationshipToPart(ribbonExtensibilityPart);
}
}
GetRibbonXml() erhält die XML des Bandes. Ich entferne die xmlns = "", die im Ribbon-Element hinzugefügt wird (aus Frage here).
Kann jemand eine Idee werfen, warum das Band nicht hinzugefügt wird. Selbst der customUI-Ordner wird nicht in der zip-Datei des Worts hinzugefügt. Könnte jemand helfen.