【问题标题】:insert image in word with ironpython用 ironpython 在 word 中插入图片
【发布时间】:2014-03-25 13:48:28
【问题描述】:

我正在寻找一种将图像插入到 ironpython 中的 word 文件的方法。 我想出了如何通过调用 clr 模块并添加引用 microsoft.office.interop.word 来替换文本,但是我无法将图像写入 word 文档。 我在做什么:

import sys
import clr
import System
from System import DateTime
clr.AddReference("Microsoft.Office.Interop.Word")
import Microsoft.Office.Interop.Word as Word

def doc_replace_text(source_filename, tokens, values, destination_filename):

   missing = System.Type.Missing
   replaceAll = Word.WdReplace.wdReplaceAll

   word_application = Word.ApplicationClass()
   word_application.visible = False

   document = word_application.Documents.Open(source_filename)

   for i in range(len(tokens)):
    for r in document.StoryRanges:
        print "i = %d, tokens[i] = %s, values[i] = %s" % (i, tokens[i], values[i])
        r.Find.Text = tokens[i]
        r.Find.Replacement.Text = values[i]
        r.Find.Wrap = Word.WdFindWrap.wdFindContinue
        r.Find.Execute(missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, replaceAll, missing, missing, missing, missing)

   document.SaveAs(destination_filename)
   document.Close()
   document = None

   word_application.Quit()
   word_application = None

感谢您的帮助

【问题讨论】:

    标签: image ms-word ironpython


    【解决方案1】:

    我想通了……

        clr.AddReference("Microsoft.Office.Interop.Word")
        from Microsoft.Office.Interop.Word import ApplicationClass
        word=ApplicationClass()
        word.Visible=False
        docPublic=word.Documents.Add()
        mod=docPublic.InlineShapes.AddPicture(path+name+".jpg", False, True,  docPublic.Paragraphs[1].Range)
        mod.Height=200
        mod.Width=300
        docPublic.SaveAs(tpath+name+"_Simulation_Report_Public.docx")
        docPublic.Close()
        docPublic=None
        word.Quit()
        word=None
    

    但是现在我需要将图片放到其他位置。我认为这可以通过使用形状的东西来完成......

    任何帮助都会很棒

    编辑:似乎我不知道我在做什么...... 来自 msdn.microsoft.com 的 AddPicture 方法采用以下值: FileName, LinkToFile, SaveWithDocument, Left, Top, Width, Height, Anchor

    【讨论】:

      【解决方案2】:

      我迟到了,但我可以通过在 Item 中定义书签名称,然后在 AddPicture 中定义它的位置,将图像放置在定义的书签上。

      loc = doc.Bookmarks.Item("BookMarkName").Range
      pic = doc.Bookmarks.Item("BookMarkName").Range.InLineShapes.AddPicture(path+name+".jpg",False,True,loc)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多