How-to: Remove text from Word document footer using C#

445 views
Skip to first unread message

curious_one

unread,
Apr 19, 2012, 6:41:22 PM4/19/12
to ComfyJ Forum
I'm trying to remove a footer from a Word document using C# 4. The
footer looks like this:

Page 1 April 18, 2012


Actually, this the text for the footer when displayed in Word VBA:

Page 1 ( April 18, 2012


There's actually a bullet character between "Page 1" and "April". In
the end the footer should look like this:

April 18, 2012


Anyway, in Word VBA, I'm able to do it using this code:

Dim rngFtr As Range
Set rngFtr =
ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range
rngFtr.Collapse wdCollapseStart
rngFtr.MoveStart wdParagraph, 1
rngFtr.MoveEnd wdWord, 4
rngFtr.Delete


I tried the same thing in C# but it removes the footer entirely.
Here's my code in C# 4:

using Microsoft.Office.Interop.Word;
Microsoft.Office.Interop.Word.Application ap = new
Microsoft.Office.Interop.Word.Application();
Document doc = ap.Documents.Open(docFile.FullName, ReadOnly: false,
Visible: false);
doc.Activate();
Microsoft.Office.Interop.Word.Range ftrRng =
doc.Sections[1].Footers[WdHeaderFooterIndex.wdHeaderFooterPrimary].Range;
ftrRng.Collapse(WdCollapseDirection.wdCollapseEnd);
ftrRng.MoveStart(WdUnits.wdParagraph, 1);
ftrRng.MoveEnd(WdUnits.wdWord, 4);
ftrRng.Delete();
ap.Documents.Close(SaveChanges: false, OriginalFormat: false,
RouteDocument: false);
((_Application) ap).Quit(SaveChanges: false, OriginalFormat: false,
RouteDocument: false);
System.Runtime.InteropServices.Marshal.ReleaseComObject(ap);


I even tried other ways to get rid of "Page 1" & the bullet, such
as:


var replaceText = string.Empty;
object mis = System.Type.Missing;
var targetFooterText =
doc.Sections[1].Footers[WdHeaderFooterIndex.wdHeaderFooterPrimary].Range.Text.ToString().Substring(1,
10);
doc.Sections[1].Footers[WdHeaderFooterIndex.wdHeaderFooterPrimary].Range.Find.Execute(
targetFooterText,
ref mis, ref mis, ref mis, ref mis, ref mis, ref mis,
ref mis, ref mis,
replaceText,
ref mis, ref mis, ref mis, ref mis, ref mis);

This doesn't do anything.

Please let me know what I'm doing wrong. Thank you in advance.

I'm not sure if this is important, but the bullet is a Unicode-2022.

Sergei Piletsky

unread,
Apr 20, 2012, 9:43:24 AM4/20/12
to curious_one, ComfyJ Forum
Just out of curiosity, why do you think that you posted your question regarding Word API usage in C# to the correct forum? Actually ComfyJ is Java product and it has nothing to do with C#.

Sincerely,
Serge



--
You are receiving this email because you have joined the "ComfyJ Forum" group or have been added by request. You may choose not to receive emails from this group or unsubscribe completely on "Edit my membership" page.
Go to http://links.teamdev.com/comfyj-forum, choose "Edit my membership" link on the right. Specify your email preferences in suggested options, or click "Unsubscribe" button.

Reply all
Reply to author
Forward
0 new messages