Open XML - Come aggiungere una filigrana a un documento docx

 C Programming >> Programmazione C >  >> Tags >> DocX
Open XML - Come aggiungere una filigrana a un documento docx

Questo è ora risolto modificando il modo in cui il file viene aperto. Quando cambiamo la funzione principale in:

static void Main(string[] args)
{
    //var doc = WordprocessingDocument.Open(@"C:\Users\loggedinuser\Desktop\TestDoc.docx", true);
    //AddWatermark(doc);
    //doc.MainDocumentPart.Document.Save();
    byte[] sourceBytes = File.ReadAllBytes(@"C:\Users\loggedinuser\Desktop\TestDoc.docx");
    MemoryStream inMemoryStream = new MemoryStream();
    inMemoryStream.Write(sourceBytes, 0, (int)sourceBytes.Length);

    var doc = WordprocessingDocument.Open(inMemoryStream, true);
    AddWatermark(doc);
    doc.MainDocumentPart.Document.Save();

    doc.Close();
    doc.Dispose();
    doc = null;

    using (FileStream fileStream = new FileStream(@"C:\Users\loggedinuser\Desktop\TestDoc.docx", System.IO.FileMode.Create))
    {
        inMemoryStream.WriteTo(fileStream);
    }

    inMemoryStream.Close();
    inMemoryStream.Dispose();
    inMemoryStream = null;
}

Il documento ora si apre correttamente in Word. Grazie a Brad B. un collega di Sonoma Partners per averlo trovato!