在LibreOffice中使用宏脚本一次插入多个图像

时间:2015-07-16 08:57:22

标签: python macros openoffice.org libreoffice

我正在用Python编写LibreOffice Writer的宏。 我需要在一个文档中插入几个图像,一个接一个地插入它们之间的空间很小。

下面的代码将所有图像插入同一区域,并且所有图像都重叠。

每次插入新图像时,我都需要将光标前进到插入的图像下方。 我已经尝试了cursor.gotoEnd(),cursor.goDown()和其他类似的方法,但似乎都没有。

我如何使这项工作?

def InsertAll():
    desktop = XSCRIPTCONTEXT.getDesktop()
    doc=desktop.loadComponentFromURL('private:factory/swriter','_blank',0,())

    text = doc.getText()
    cursor = text.createTextCursor()

    file_list = glob.glob('/path/of/your/dir/*.png')
    for f in file_list:
        img = doc.createInstance('com.sun.star.text.TextGraphicObject') 
        img.GraphicURL = 'file://' + f
        text.insertTextContent(cursor, img, False)
        cursor.gotoEnd(False) <- doesnt advance the cursor downwards

    return None

1 个答案:

答案 0 :(得分:2)

在每张图片后插入一个分段符:

Locale

Locale.ENGLISH - Locale.SPANISH

这将通过段落

分隔图像

安德鲁的书是解决许多OpenOffice脚本问题的基本来源:+1