Проблема: -Поиск изображений в документ Word программно
Во время недавнего ребрендинга упражнения на рабочем месте, все текстовые документы (сохраненные в формате RTF-файлов))
У меня есть документы слова, которые 2, 3 или даже размером 4 МБ.
Посмотрев на фотографии в документах, я заметил, что некоторые из них уменьшены до 48%, 70%, 88%, что угодно. Если я вырезаю изображение из документа, вставьте его в Paint.NET, измените его размер, вставьте его обратно в документ и поместите его в соответствии с оригиналом, я могу получить размер документов до менее 1/10 вручную сфальсифицированный.
Я хочу программно обрабатывать документы 1150 Word и находить фотографии, которые масштабируются. Затем я хочу вытащить снимки, изменить их размер, а затем вернуть обратно в замену добавленных вручную изображений. Сохранение дискового пространства.
У меня возникли трудности с навигацией по объектной модели Word и поиском изображений программно.
Эта веб-страница на MSDN говорит, что вы можете добавить их, как это
this.Application.Selection.InlineShapes.AddPicture(@"C:\SamplePicture.jpg");
так что я думал, что с помощью коллекции InlineShapes может дать мне доступ к коллекции фотографий в документе.
Я заявлю interop.
using Microsoft.Office.Interop.Word;
using Microsoft.Office.Interop;
using Microsoft.Office;
и открыть приложение Word, и документ, как это (это работает)
private void OpenWordApplication()
{
_WordApp = new Microsoft.Office.Interop.Word.Application();
if (chkVisibleWord.CheckState == CheckState.Checked) {
_WordApp.Visible = true;
}
else
{
_WordApp.Visible = false;
}
}
private void OpenTheDocument(string DocumentPath)
{
_WordDoc = _WordApp.Documents.Open(DocumentPath);
changesMade = false;
}
Когда я пытаюсь найти эх картинки в InlineShapes, я не могу показаться, чтобы достать из них ,
_WordApp.Selection.HomeKey(WdUnits.wdStory);
int picCount = _WordApp.ActiveDocument.InlineShapes.Count;
MessageBox.Show(string.Format("There are {0} images in this document", picCount));
Я получаю окно сообщения, в котором указано, что число равно нулю.
ПРИМЕЧАНИЕ. Приложение отлично открывает документы в Word. Он делает другие вещи для документов в зависимости от того, какие флажки я проверил в форме, проблема для меня, кажется, прямо в доступе к коллекции InlineShapes.
Любые указатели. Я ценю ваше внимание до сих пор?
Заранее спасибо
Вы говорите, что ваш фрагмент кода не дает вам то, что вы хотите. Что это дает вам и чем оно отличается от того, что вы хотите?Элементы 'Selection' не имеют никакого отношения к получению подсчета (в коллекции Inline Shapes нет необходимости выбирать текст активного документа). Если ваши операторы 'Use' и код, устанавливающий' _WordApp', верны, вы должны получить точный счет. Пожалуйста, добавьте дополнительный код, включая инструкции 'Using'. – joeschwa
@joeschwa Я получаю отсчет нуля в документе, где я знаю, что есть изображение. Я поправлю свой вопрос и включу более широкий круг кода. – cometbill
Шаблоны не обязательно являются InlineShapes. InlineShapes. Также может быть коллекция Shapes в каждом StoryRange (извините, не время сказать больше, чем сейчас). – 2014-09-12 12:28:58