
Работая на WinXP, Ruby 1.8.6, Word 2002 / XP SP3, я записал макросы и перевел их, насколько я мог их понять, в это:
require 'win32ole'
begin
word = WIN32OLE::new('Word.Application') # create winole Object
doc = word.Documents.Add
word.Selection.InlineShapes.AddPicture "C:\\pictures\\some_picture.jpg", false, true
word.ChangeFileOpenDirectory "C:\\docs\\"
doc.SaveAs "doc_with_pic.doc"
word.Quit
rescue Exception => e
puts e
word.Quit
ensure
word.Quit unless word.nil?
end
Вроде работает. Любое использование?
Вы можете сделать это, вызвав метод Document.InlineShapes.AddPicture ().
В следующем примере перед вторым предложением в активный документ вставляется изображение.
require 'win32ole'
word = WIN32OLE.connect('Word.Application')
doc = word.ActiveDocument
image = 'C:\MyImage.jpg'
range = doc.Sentences(2)
params = { 'FileName' => image, 'LinkToFile' => false,
'SaveWithDocument' => true, 'Range' => range }
pic = doc.InlineShapes.AddPicture( params )
Документацию по методу AddPicture () можно найти в здесь.
Дополнительные сведения об автоматизации Word с помощью Ruby можно найти в здесь.
Это ответ Дэвида Маллета, его можно найти здесь