I have created a new Word document from existing word document in a Word addin Blazor project. I want to add content in a new Word document and also load the task pane in a new word document similar to existing Word task pane. I have written a code but it does not display the content in a new document, it displays in existing word context and the task pane is also not auto loaded in a new word document. Basically I want to create a word document similar to an existing word document.
export async function createNewDocument() { try { // Create and open the new document let newDocUrl; await Word.run(async (context) => { const newDoc = context.application.createDocument(); newDoc.open(); // Sync to ensure the new document is opened await context.sync(); // Get the URL of the new document (if possible, or use another method) newDocUrl = Office.context.document.url; // This helps confirm we're dealing with the new doc }); // Adding a short delay to ensure the new document is fully initialized await new Promise(resolve => setTimeout(resolve, 1000)); // Use another `Word.run` block to interact with the new document explicitly await Word.run(async (newContext) => { // Ensure the context is correctly tied to the newly opened document if (Office.context.document.url === newDocUrl) { const newDocument = newContext.document; // Insert content into the new document newDocument.body.insertText("This is the new content for the new document.", Word.InsertLocation.end ); // Sync after content insertion await newContext.sync(); // Set the task pane to auto-show with the new document Office.context.document.settings.set('Office.AutoShowTaskpaneWithDocument', true ); // Save the settings asynchronously await new Promise((resolve, reject) => { Office.context.document.settings.saveAsync((result) => { if (result.status === Office.AsyncResultStatus.Succeeded) { resolve(); } else { reject(result.error); } }); }); // Show the task pane explicitly in the new document Office.addin.showAsTaskpane(); // Sync to confirm task pane is shown await newContext.sync(); } else { throw new Error("Failed to switch to the new document context."); } }); } catch (error) { console.error("Error creating or modifying the new document: ", error); // Detailed error logging if (error instanceof OfficeExtension.Error) { console.error("Debug info: ", JSON.stringify(error.debugInfo)); } throw error; // Re-throw to handle in the calling function }}I have successfully created a new word document from existing word document. But I cannot add the content in a new Word document and auto load the task pane as it is similar to existing word task pane. I want to auto load the sideloader in Word. My condition is if the existing document is already saved and it already contains the content I need to create a new document and insert my content or data in a new word document and also load the taskpane(sideloader) same as existing word document? my c# code is below
private async Task<string> EditDocument(){ try { isDocumentSaved = await JSRuntime.InvokeAsync<bool>("wordInterop.checkIfDocumentIsSaved"); Console.WriteLine("status of saved docuemnt"+ isDocumentSaved); if (isDocumentSaved == true) { try { // Create a new document and ensure all operations are in its context await JSModule.InvokeVoidAsync("createNewDocument"); return "New document created and operations performed."; }catch (Exception ex) { Console.WriteLine($"Error: {ex.Message}"); throw new Exception("Error in processing new document: " + ex.Message); } } else { //perform ooperation in existing word document } } catch (Exception ex) { throw new Exception("message:-"+ ex.Message); }}