2017-12-29 104 views
8

Tôi đang sử dụng Visual C++ để tự động Word, trong đoạn mã sau tôi cố gắng để chèn văn bản theo sau là một bức tranh:Tại sao ảnh của tôi xuất hiện trước văn bản?

// 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); 

Tuy nhiên, sau khi thực hiện mã, tôi thấy văn bản được luôn đặt SAU bức tranh, không TRƯỚC KHI hình ảnh, tại sao?

Cảm ơn

+0

Đó là thư viện * rất * tối nghĩa mà bạn đang sử dụng. Xin chúc mừng, bạn là lần truy cập Google duy nhất cho DOCX_VARIANT_OPTIONAL. Mùi giống như một cái gì đó dựa trên OpenXml, khó đoán. Chức năng interop yêu cầu 4 đối số phụ để đặt hình ảnh liên quan đến trang. Trang, không phải đoạn văn. Hãy khai sáng cho chúng tôi về thư viện này. –

+0

Điều này liên quan đến cách Word định nghĩa và làm việc với đối tượng RANGE. Tìm phương pháp COLLAPSE trong thư viện bạn đang sử dụng. Bạn muốn loại wdCollapseEnd cho tham số Direction becaûse bạn cần phải xác định lại Range ở cuối văn bản mà bạn đã chèn vào Range. (Lưu ý: nếu bạn muốn chèn thêm văn bản, nó sẽ THAY THẾ lại văn bản bạn đã gán cho Phạm vi nếu bạn không thu gọn Phạm vi, trước tiên.) –

Trả lời

1

Với mô tả của tham số phạm vi (người cuối cùng mà bạn cung cấp DOCX_VARIANT_OPTIONAL):

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. 

tôi sẽ đoán đây là một cái gì đó để làm với "vị trí tự động". Thử chèn một phạm vi giữ chỗ trước văn bản và chỉ định đó làm vị trí.

Các vấn đề liên quan