2011-09-21 1 views
3

나는 기본 위치에서 사진과 텍스트를 삽입하기 위해이 작업을 수행 할 수 있습니다C#을 사용하여 단어 2007 문서의 특정 좌표에 그림/텍스트 레이블을 삽입하는 방법?

 private static object objTrue = true; 
     private static object objFalse = false; 
     private static object objMissing = Missing.Value; 
     private static object objEndOfDoc = @"\endofdoc"; // \endofdoc is a predefined bookmark. 

     ... 

     this.WordApp = new Word.Application(); 
     this.WordDoc = new Word.Document(); 
     this.WordApp.Visible = true; 
     this.WordDoc = this.WordApp.Documents.Add(ref objMissing, ref objMissing, ref objMissing, ref objMissing); 

     this.WordDoc.Content.InlineShapes.AddPicture(
     FileName: @"C:\MyLogo.png", 
     LinkToFile: ref objMissing, 
     SaveWithDocument: ref objTrue, 
     Range: objMissing); 

     // Insert a paragraph at the beginning of the document. 
     var paragraph1 = this.WordDoc.Content.Paragraphs.Add(ref objMissing); 
     paragraph1.Range.Text = "Heading 1"; 
     paragraph1.Range.Font.Bold = 1; 
     paragraph1.Format.SpaceAfter = 24; //24 pt spacing after paragraph. 
     paragraph1.Range.InsertParagraphAfter(); 

가 어떻게 그것이 내가 원하는 위치로 이동할 수 있습니다 ? 파워 포인트를 만들 때 (수동으로), 어디서나 위치를 지정할 수 있습니다. 수동으로 도형을 삽입하면 어느 위치 에나 배치 할 수 있습니다. C#을 사용하여 그림과 텍스트 레이블을 프로그래밍 방식으로 삽입 할 때 비슷한 결과를 얻으려면 어떻게해야합니까? 나는 Google 검색을 사용하여 이것을 파악하는 데 성공하지 못했습니다.

답변

5

Range 클래스는 거의 모든 것이 문서에서 어디로 이동하는지 결정하기 위해 단어로 사용됩니다. this.WordDoc.Content.InlineShapes.AddPictureRange 매개 변수를 유효한 Range 개체로 바꾼 경우 단어 문서의 해당 위치에 그림이 삽입되고 단락도 마찬가지입니다. InlineShapes에 AddPicture 입력 방법에 대한 MSDN에 따르면

:

범위 : 선택 개체입니다. 그림이 텍스트에 배치 될 위치입니다. 범위가 축소되지 않으면 그림이 범위를 대체합니다. 그렇지 않으면 그림이 삽입됩니다. 이 인수를 생략하면 그림이 자동으로 배치됩니다.

또 다른 방법은 InlineShapes 대신 Shapes 구성원을 사용하는 것입니다. Shapes 클래스에 AddPicture 방법을 사용하면 좌표를 지정할 수 있습니다 :

this.WordDoc.Content.Shapes.AddPicture(
    [In] string FileName, 
    [In, Optional] ref object LinkToFile, 
    [In, Optional] ref object SaveWithDocument, 
    [In, Optional] ref object Left, 
    [In, Optional] ref object Top, 
    [In, Optional] ref object Width, 
    [In, Optional] ref object Height, 
    [In, Optional] ref object Anchor 
); 

InlineShapes.AddPicture

Shapes.AddPicture

+0

쿨, 작동! 첫 번째 단계에서 2 인치를 건너 뛰고 프로그래밍 방식으로 정상 흐름을 계속 유지하려면 어떻게해야합니까? 수동으로 Shift-Enter (Enter가 아님)를 6-7 회 누르거나 정상적으로 입력 할 수 있습니다. 현재 삽입 된 그림을 나중에 추가 할 새로운 내용으로 교체하고 있습니다. –

+0

울리는에서 북마크를 추가하는 방법은 무엇입니까? 'Range oRange = ?? oRange.Document.Bookmarks.Add ("bsmText", ref objMissing);' –