У меня есть документ Word (называемый «doc» в коде ниже) с кучей изображений .jpg. У некоторых из них есть текст, обернутый вокруг них (= Shapes), некоторые из них не (= InlineShapes). Я могу спасти InlineShapes так:image (noninlineshape) from Word to clipboard to file
InlineShape ils = doc.InlineShapes[1];
ils.Select();
application.Selection.Copy();
IDataObject data = Clipboard.GetDataObject();
if (data.GetDataPresent(DataFormats.Bitmap)) {
Image image = (Image)data.GetData(DataFormats.Bitmap, true);
image.Save("c:\\image.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
}
Но если я пытаюсь получить другие из них, заменив первые две строчки с ними -
Shape s = doc.Shapes[1];
s.Select();
- это не будет работать. И если я проверю форматы с помощью «data.GetFormats()», я заметил, что Bitmap не указан, что объясняет, почему он не работает. Вместо этого он отображает «Формат формы чертежа Office». Я полагаю, что я должен попытаться каким-то образом преобразовать форму в InlineShape, но я не смог заставить ее работать. Когда я пытаюсь сделать это вот так:
s.ConvertToInlineShape();
- Я получаю исключение «недопустимый параметр».