Programming with word in C# : Replace bookmark with actual values

Programming with word in C#  : Replace bookmark with actual values


Step 1 : Add a bookmark to work document ( for example StudentLetter.doc )

  1. Click where you want to insert a bookmark.
  2. On the Insert tab, in the Links group, click Bookmark.
  3. Under Bookmark name, type a name. For example StudentName 
  4. Click Add.
Step 2 : Create a C# project and Add reference to Microsoft Word Object Library

  1. Start Microsoft Visual Studio 2005 or Microsoft Visual Studio .NET.
  2. On the File menu, click New, and then click Project. Under Project Types, click Visual C# Projects, and then click Windows Application under Templates. Form1 is created by default.

    Note In Visual Studio 2005, click Visual C# instead of Visual C# Projects.
  3. Add a reference to Microsoft Word Object Library. To do this, follow these steps:
  4. On the Project menu, click Add Reference.
  5. On the COM tab, locate Microsoft Word Object Library, and then click Select.
Step 3 : Create instance of the Word application

Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();

Step 4 : Initialize  all the parameters

object fileName = @"C:\Template\StudentLetter.doc";
object confirmConversions = Type.Missing;
object readOnly = Type.Missing;
object addToRecentFiles = Type.Missing; o
bject passwordDoc = Type.Missing;
object passwordTemplate = Type.Missing;
object revert = Type.Missing;
object writepwdoc = Type.Missing;
object writepwTemplate = Type.Missing;
object format = Type.Missing;
object encoding = Type.Missing;
object visible = Type.Missing;
object openRepair = Type.Missing;
object docDirection = Type.Missing;
object notEncoding = Type.Missing;
object xmlTransform = Type.Missing;

Step 5 : Create instance of document by passing above paramters

Microsoft.Office.Interop.Word .document doc = wordApp.Documents.Open(
    ref fileName, ref confirmConversions, ref readOnly, ref addToRecentFiles,
    ref passwordDoc, ref passwordTemplate, ref revert, ref writepwdoc,
    ref writepwTemplate, ref format, ref encoding, ref visible, ref openRepair,
    ref docDirection, ref notEncoding, ref xmlTransform);
 
Step 6 : Create to Common method to find a bookmark . If the bookmark exists replace it with text.
 
private void ReplaceBookmarkText ( 
    Microsoft.Office.Interop.Word .document doc,
    string bookmarkName, 
    string text)
{
    if ( doc.Bookmarks.Exists(bookmarkName) )
    {
        Object name = bookmarkName;
        Microsoft.Office.Interop.Word.Range range = 
            doc.Bookmarks.get_Item( ref name ).Range;
        
        range.Text = text;
        object newRange = range;
        doc.Bookmarks.Add(bookmarkName, ref newRange);
    }
}
 
 
 Step 7 : Call the common method ReplaceBookmarkText to replace bookmark StudentName with actual value i.e studentName

ReplaceBookmarkText(doc, "StudentName", studentName);

4 comments:

  1. Hi, thanks for this article.when i closed word docunment, Hovewer I had this error : System.Runtime.InteropServices.ComException (0x800706BA):RPC sunucusu kullanılamıyor. (HRESULT özel durum döndürdü: 0x800706BA)

    ReplyDelete
  2. Make sure you have Microsoft Office installed in the system. Also request you to share the code and word template , you are using.Reach out to All Technical Faqs team : contactus@alltechnicalfaqs.com

    ReplyDelete
  3. This is working fine. But on replacing the Bokkmarks the characters after the bookmarks are moving their positions. How to resolve this.?
    Also onusing this in asp its promting to crate a client side copy.

    ReplyDelete
    Replies
    1. Request you to share your code to contactus@alltechnicalfaqs.com so that we can debug and help you

      Delete

Labels

.NET Framework Interview Questions (7) .NET Interview Questions (10) .NET Remoting Interview Questions (1) ADO.NET and BLOB Error (1) ADO.NET Interview Questions (4) Agile Articles (9) AJAX Articles (5) AJAX Interview Questions (11) Algorithms (2) Analytics Articles (2) Analytics Interview Questions (3) Android FAQs - Part 1 (2) Articles (13) ASP.NET Articles (24) ASP.NET Error and Resolution (4) ASP.NET Interview Questions (23) ASP.NET Tutorial (8) AWS Interview Questions (16) Business Analyst Interview Questions (1) Cloud Computing Interview Questions (16) CSharp Articles (17) CSharp Interview Questions (32) CSharp Tutorial (17) Data Analysis (2) Data Structure (1) Design Pattern Articles (5) DevOps Tutorial (1) Digital Marketing Interview Questions (1) Download Templates (1) Error Resolution (6) Excel Articles (9) Excel Macros (1) Excel Tips and Tricks (10) HTML5 Interview Questions (3) HTML5 Tutorial (3) Interview Preparation (2) Interview Questions (24) Introduction to Business Analytics (10) Introduction to Python (7) Introduction to R Programming (23) JAVA Articles (6) Java Tutorial (5) LINQ Articles (4) LINQ Interview Questions (2) LINQ Tutorial (3) Microservices Interview Questions (1) MVCInterviewQuestions (2) OOPs Interview Questions (4) Oracle 9i Tutorial (14) Oracle Articles (2) Oracle Interview Questions (15) Outlook Error (1) PHP Interview Questions (3) PHP Tutorial (3) Product Management (12) Product Management Interview Questions (14) Product Owner Interview Questions (2) Program Management (5) Project Management (13) Project Management Articles (34) Project Management Interview Questions (25) Quiz (1) RallyDev Help (1) Scrum Master Interview Questions (11) Selenium Tutorial (1) Sharepoint Articles (1) SQL Interview Questions (23) SQL Server Articles (20) SSIS Interview Questions (6) SSRS Interview Questions (1) Technical Program Management (12) Technical Program Management - Interview Questions (24) TechnicalProgramManagement (5) Threading Interview Questions (2) Tutorial (8) UML Articles (3) UML Interview Questions (2) Unix (3) UNIX Tutorial (3) WCF Articles (20) WCF Interview Questions (9) WCF Quiz (2) WCF Tutorial (16) Web Service Articles (5) Web Service Interview Questions (3) Window Azure (1) XML Articles (6) XML Interview Questions (3) XML Tutorial (3)