2017-12-29 70 views
8

私は絵に続くテキスト挿入しようとし、次のコードでは、Wordを自動化するには、Visual C++を使用しています:テキストの前に画像が表示されるのはなぜですか?

// OLEParagraphs is an object of COLEParagraphs 
COLEParagraph LastParagraph = OLEParagraphs.get_Last(); 
COLERange LastParagraphRange = LastParagraph.get_Range(); 
COLEInlineShapes InlineShapes = LastParagraph.get_InlineShapes(); 

LastParagraphRange.put_Text(_T(“See picture below:”)); 
InlineShapes.AddPicture(strPicFileName, COleVariant(0l), COleVariant(1l), DOCX_VARIANT_OPTIONAL); 

はしかし、コードを実行した後、私はテキストは常に絵AFTER入れて検索すると、写真より前に、なぜ?私は、これは「自動配置」とは何かですよね

Optional Object. The location where the picture will be placed in the text. If the range isn't collapsed, the picture replaces the range; otherwise, the picture is inserted. If this argument is omitted, the picture is placed automatically. 

おかげ

+0

これはあなたが使用している非常に曖昧なライブラリです。おめでとう、あなたはDOCX_VARIANT_OPTIONALのGoogleの唯一のヒットです。何かOpenXmlのような臭いがあり、推測が難しい。 interop関数では、ページを基準にして画像を配置するために4つの余分な引数が必要です。ページ、段落ではありません。この図書館について私たちに教えてください。 –

+0

これは、WordがRANGEオブジェクトを定義して動作させる方法と関係があります。使用しているライブラリのCOLLAPSEメソッドを探します。 Rangeに挿入したテキストの最後にRangeを再定義する必要があるため、DirectionパラメータのwdCollapseEndタイプが必要です。 (注:テキストを挿入しようとすると、Rangeを折りたたんでいない場合は、既にRangeに割り当てられているテキストが置換されます)。 –

答えて

1

は(あなたがDOCX_VARIANT_OPTIONALを提供し、最後のいる)範囲パラメータの説明を考えます。テキストの前にプレースホルダの範囲を挿入し、その位置として指定してください。

関連する問題