curious_one
unread,Apr 19, 2012, 11:39:26 PM4/19/12You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to
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.