Получить изображение из верхнего и нижнего колонтитула файла .docx в C # - PullRequest
2 голосов
/ 15 ноября 2011

У меня есть файл .docx с изображениями в нижнем колонтитуле и заголовке.Как получить изображения, зная, что находится в нижнем колонтитуле, а что в верхнем колонтитуле?

Я попытался использовать:

Microsoft.Office.Interop.Word.Range range = section.Footers[Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterFirstPage].Range;

, но не вижу каких-либо свойств, которые были бы полезны.

Ответы [ 3 ]

2 голосов
/ 15 августа 2013

Посмотрите на свойство InlineShapes (http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.inlineshapes(v=office.11).aspx) объекта Range. Это набор объектов InlineShape (http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.inlineshape(v=office.11).aspx)). Объектом Inline может быть любой из нескольких типов объектов, и Вы можете проверить, какой из них, перейдя к свойству Type (http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.inlineshape.type(v=office.11).aspx)

(Прошло почти 2 года с тех пор, как об этом спросили, и я надеюсь, что автор нашел решение, я добавил его на тот случай, если кто-то еще может найти это полезным).

0 голосов
/ 10 октября 2014
var applicationWord = new Microsoft.Office.Interop.Word.Application();
adoc = applicationWord.Documents.Open(ref ofileName);
foreach (Section oSection in adoc.Sections)
{
    foreach (HeaderFooter OHeader in oSection.Headers)
    {
        foreach(Microsoft.Office.Interop.Word.Shape Headershape in OHeader.Shapes)
        {
            Headershape.Delete();
            OHeader.Shapes.AddPicture(m_sLogoPath);
        }
    }
}

Ссылка: Основы автоматизации Word

0 голосов
/ 08 октября 2014

способ 1:

 foreach(Microsoft.Office.Interop.Word.Shape Headershape in OHeader.Shapes)
                        {
                           InlineShape inlineshape = Headershape.ConvertToInlineShape();
                           Range PictureRange = inlineshape.Range;
                           inlineshape.Delete();
                           PictureRange.InlineShapes.AddPicture(m_sLogoPath);
                        }

путь: 2

 foreach (InlineShape shape in OHeader.Range.InlineShapes) 
                            {
                                if (shape.Type == Microsoft.Office.Interop.Word.WdInlineShapeType.wdInlineShapePicture)
                                {
                                    shape.Delete();
                                    oSection.Headers[WdHeaderFooterIndex.wdHeaderFooterPrimary].Range.InlineShapes.AddPicture(m_sLogoPath);
                                }
                            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...