You need to enable JavaScript to run this app. 如何使用Basic在LibreOffice Draw指定页面插入图片
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Basic在LibreOffice Draw指定页面插入图片

LibreOffice Draw Basic 脚本插入图片的修正方案

现有代码的两处核心问题

  • 插入图片的逻辑方向错误:你之前使用的FillStyle = BITMAP、FillBitmapURL = 图片路径是设置整个页面的位图背景属性,并非插入可独立移动、编辑的图片形状对象,且该属性配置对参数类型、赋值顺序有严格要求,很容易触发运行报错,也不符合“在页面插入图片”的实际需求
  • 新建第二页的索引参数错误:空白Draw文档初始仅包含1个绘图页(索引为0),使用insertNewByIndex(2)新建页面时,传入的索引超出了可插入范围,会触发页面创建失败的问题,正确的插入位置索引应为1

正确实现逻辑

Draw文档中的图片是独立的图形形状对象,需要通过创建 com.sun.star.drawing.GraphicObjectShape 类型的形状实例,绑定图片URL后添加到对应绘图页中,而非修改页面本身的填充属性。

可直接运行的修正代码

sub InsertImage()
    Dim Doc As Object
    Dim Page1 As Object
    Dim Page2 As Object
    Dim ImageShape As Object

    ' 转换图片路径为系统可识别的URL格式
    Dim ImagePath1 As String
    ImagePath1 = ConvertToURL("C:/Images/MyImage1.jpg")
    Dim ImagePath2 As String
    ImagePath2 = ConvertToURL("C:/Images/MyImage2.jpg")

    Dim emptyArgs()
    Dim docCreateUrl As String
    docCreateUrl = "private:factory/sdraw"

    ' 新建空白Draw文档
    Doc = StarDesktop.LoadComponentFromUrl(docCreateUrl, "_blank", 0, emptyArgs)

    ' 操作第一页
    Page1 = Doc.DrawPages(0)
    Page1.Name = "Image1"
    ' 创建图片形状
    ImageShape = Doc.createInstance("com.sun.star.drawing.GraphicObjectShape")
    ImageShape.GraphicURL = ImagePath1
    ' 设置图片位置与尺寸,单位为1/100毫米
    ImageShape.PositionX = 15000
    ImageShape.PositionY = 10000
    ImageShape.Width = 10000
    ImageShape.Height = 7000
    ' 将图片形状添加到第一页
    Page1.add(ImageShape)

    ' 在索引1位置新建第二页
    Page2 = Doc.DrawPages.insertNewByIndex(1)
    Page2.Name = "Image2"
    ' 创建第二页的图片形状
    ImageShape = Doc.createInstance("com.sun.star.drawing.GraphicObjectShape")
    ImageShape.GraphicURL = ImagePath2
    ImageShape.PositionX = 15000
    ImageShape.PositionY = 10000
    ImageShape.Width = 10000
    ImageShape.Height = 7000
    Page2.add(ImageShape)
End sub

实操注意事项

  • 图片路径请填写绝对路径,使用相对路径大概率会出现文件找不到的报错
  • 形状的位置、尺寸参数可根据实际页面大小、图片比例自由调整,若需要保留图片原始比例,可在设置宽高前读取图片的实际分辨率再按比例计算适配尺寸
  • 上述方法插入的图片是独立的可编辑对象,支持后续调整大小、位置、添加效果等操作,和手动插入图片的效果完全一致

内容的提问来源于stack exchange,提问作者hemis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.04 15:54:04