Word Automation с использованием WIN32OLE

Я пытаюсь вставить изображение (jpg) в текстовый документ, а объект Selection.InlineShapes.AddPicture, похоже, не поддерживается win32old, или я делаю что-то не так. Кому-нибудь повезло вставлять изображения.

Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Шаг 1: Создание приложения Slack Чтобы создать Slackbot, вам необходимо создать приложение Slack. Войдите в свою учетную запись Slack и перейдите на...
3
0
2 540
2

Ответы 2

Работая на 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 можно найти в здесь.

Это ответ Дэвида Маллета, его можно найти здесь

Другие вопросы по теме