2015-07-23 3 views
0

Я использую следующий код VB.NET (VSTO), чтобы добавить форму в MS-Word,Word VSTO - Заполнение формы не работает в Word 2010 и Word 2013?

Dim app As Word.Application = Globals.ThisAddIn.Application 
Dim doc As Word.Document = app.ActiveDocument 
Dim left As Single = CSng(Convert.ToDouble(app.Selection.Information(Word.WdInformation.wdHorizontalPositionRelativeToPage))) 
Dim top As Single = CSng(Convert.ToDouble(app.Selection.Information(Word.WdInformation.wdVerticalPositionRelativeToPage))) 
Dim shape As Word.Shape = doc.Shapes.AddShape(1, left, top, 225.1F, 224.5F) 

shape.Fill.BackColor.RGB = ColorTranslator.ToOle(Color.Transparent) 
shape.Fill.Visible = Microsoft.Office.Core.MsoTriState.msoFalse 
shape.Fill.Transparency = 0.0F 
shape.Line.Transparency = 0.0F 
shape.Line.Visible = Microsoft.Office.Core.MsoTriState.msoFalse 
shape.Fill.UserPicture("C:\Newfolder\App1.jpg") 

Что этот код делает это, он добавляет форму прямоугольника в точке курсора, делает его прозрачным (как фон и строка) и добавляет (заполняет) изображение.

Это прекрасно работает в Word 2007. Но на Word 2010 и Word 2013 есть проблема. Он добавляет прямоугольную форму в точку курсора и делает ее прозрачной. Но он не заполняет изображение.

shape.Fill.UserPicture("C:\Newfolder\App1.jpg") 

Вышеупомянутая строка кода не работает в Word 2010 и Word 2013. Другие части прекрасно работают. Как изменить код, чтобы заполнить изображение в форме прямоугольника в Word 2010 и 2013?

ответ

1

Вместо shape.Fill.UserPicture("C:\Newfolder\App1.jpg") попробовать

Word.Range range = shape1.TextFrame.TextRange; 
    range.InlineShapes.AddPicture(@"C:\Newfolder\App1.jpg", false, true, Type.Missing); 
+0

Спасибо за решение. –

+0

Эй [Charlie] (http://stackoverflow.com/users/4923873/charlie), у меня есть другой подобный вопрос. Проверьте это: [Word VSTO - изменить тип абсолютных позиций?] (Http://stackoverflow.com/questions/31682246/word-vsto-change-the-absolute-positions-type) –

+0

Привет [Charlie] (http://stackoverflow.com/users/4923873/charlie), знаете ли вы решение этого: [Word VSTO - изменить тип абсолютных позиций?] (http://stackoverflow.com/questions/31682246/word -vsto-change-the-absolute-position-type) –

Смежные вопросы