2011-09-21 59 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(); 

我怎樣才能將其移動到我想要的任何位置?當我創建PowerPoint(手動)時,我可以在任何地方放置東西。當我手動插入形狀時,我可以將它放在任何位置。如何在使用c#編程插入圖片和文本標籤時獲得類似的結果?我還沒有成功用谷歌搜索來解決這個問題。

回答

5

Range類用於確定文檔中幾乎所有內容的位置。如果將this.WordDoc.Content.InlineShapes.AddPicture中的Range參數替換爲有效的Range對象,它將在該文檔的該位置插入圖片,而對於段落也是如此。

根據MSDN上InlineShapes AddPicture方法:

範圍:可選的對象。圖片將放置在文本中的位置。如果範圍未摺疊,則圖片會替換範圍;否則,插入圖片。如果省略此參數,圖片將自動放置。

另一種方法是使用文檔,而不是InlineShapesShapes成員。在ShapesAddPicture方法允許你指定的座標:

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(但不是輸入)大約6-7次,並繼續按正常方式輸入內容。目前,我正在用以後添加的新內容替換插入的圖片。 –

+0

如何在鈴聲中添加書籤? 'Range oRange = ?? oRange.Document.Bookmarks.Add(「bsmText」,ref objMissing);' –

相關問題