C#のインライン形選択メソッド

私は画像を抽出するためにC#で次のコードを試してきましたが、私は以下のようになっています:

Microsoft.Office.Interop.Word.Application oWord = new Microsoft.Office.Interop.Word.Application();

            Microsoft.Office.Interop.Word.Document oDoc = new Microsoft.Office.Interop.Word.Document();

 oDoc = oWord.Documents.Open(ref str1......);

oDoc.InlineShapes.Select();

エラー:

oDoc.InlineShapes.Select();
The requested member of the collection does not exist.

この行に何が間違っているのか教えてください。

0

1 答え

私の知る限り、 InlineShapes コレクションには、裸の Select()メソッドがありません。したがって、私はあなたがコレクションにlinqを使用しようとしていると仮定しています。

InlineShapes is an implementation of IEnumerable which does not have a Select(...) method.

私はあなたがこれを行う必要があると思う、

// Note the select is spurious here
oDoc.InlineShapes.OfType().Select((shape) => shape)

OfType() returns an IEnumerable which does support the Select(...) method.

IEnumerableSelect(...)で拡張した場合、使用する Object 型には有用なプロパティはありません。

編集

InlineShapesから画像を取得したい場合は...

 var pictures = oDoc.InlineShapes.OfType().Where(s =>
    s.Type = WdInlineShapeType.wdInlineShapePicture ||
    s.Type = WdInlineShapeType.wdInlineShapeLinkedPicture ||
    s.Type = WdInlineShapeType.wdInlineShapePictureHorizontalLine ||
    s.Type = WdInlineShapeType.wdInlineShapeLinkedPictureHorizontalLine);

 foreach(var picture in pictures)
 {
     picture.Select();
     oWord.Selection.Copy()

     //Then you need to retrieve the contents of the clipboard
     //which I feel is another question.
 }

これは、ドキュメント内に絵を持つすべてのインラインシェイプのセットを与えるはずです。

2
追加された
あなたのロジックは、docファイル内のイメージを選択しません。
追加された 著者 fawad,
無効な表現用語 'is'
追加された 著者 fawad,
しかし、私はそれをコンパイルし、エラーを取得しています
追加された 著者 fawad,
Visual Studio 2010を使用していて、 "WdInlineShapeType.wdInlineShapePicture"の下に赤い線が表示されます。
追加された 著者 fawad,
これを試してみてください。自分でこのコードをコンパイルしたわけではありません。ちょうど正しい方向にあなたを導くために書いてあります。
追加された 著者 Jodrell,
どのバージョンの.netを使用していますか、どのようなエラーが表示されていますか?
追加された 著者 Jodrell,