2008-11-01 12 views
3

J'essaie d'insérer une image (jpg) dans un document Word et le Selection.InlineShapes.AddPicture ne semble pas être pris en charge par win32old ou je fais quelque chose de mal. Quelqu'un a-t-il eu de la chance en insérant des images?Word Automation utilisant WIN32OLE

Répondre

1

Fonctionnant sur Windows XP, Ruby 1.8.6, Word 2002/XP SP3, j'ai enregistré les macros et les traduit, pour autant que je pouvais les comprendre, dans ce:

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 

Il semble fonctionner. Toute utilisation?

2

Vous pouvez le faire en appelant la méthode Document.InlineShapes.AddPicture().

L'exemple suivant insère une image dans le document actif, avant la deuxième phrase.

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) 

Documentation sur la méthode AddPicture() peut être trouvé here.

Vous trouverez des informations supplémentaires sur l'automatisation de Word avec Ruby here.

Ceci est la réponse de David Mullet et se trouvent here