You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python为LibreOffice Writer插入带日期的Annotation

解决com.sun.star.text.textfield.Annotation批注不显示日期的问题

我之前也踩过这个坑!问题出在你没正确初始化Date对象——虽然API文档标注Date是com.sun.star.util.Date类型的引用,但直接修改anno.Date.Year这类子属性根本没用,因为此时anno.Date大概率还是空引用,底层没法把修改后的属性绑定到批注实例上。

正确的思路是先创建一个完整的com.sun.star.util.Date实例,设置好年月日之后,再把这个对象赋值给批注的Date属性。

修正后的代码

# 创建批注实例
anno = model.createInstance("com.sun.star.text.textfield.Annotation")
anno.Content = "this is my annotation/comment"
anno.Author = doc.DocumentProperties.Author

# 单独创建并初始化Date对象
date_obj = model.createInstance("com.sun.star.util.Date")
date_obj.Year = 2020
date_obj.Month = 5
date_obj.Day = 18

# 将Date对象赋值给批注的Date属性
anno.Date = date_obj

为什么原来的代码无效?

你之前直接操作anno.Date的子属性,但com.sun.star.text.textfield.Annotation的Date属性需要接收一个已实例化的Date对象,而非对默认的空引用做属性修改。只有把完整的Date对象赋值过去,批注才会正确读取并显示日期。

你之前尝试的代码:

anno = model.createInstance("com.sun.star.text.textfield.Annotation")
anno.Content = "this is my annotation/comment"
anno.Author = doc.DocumentProperties.Author
anno.Date.Year = 2020
anno.Date.Month = 5
anno.Date.Day = 18

对应的无日期显示效果:
无日期的批注显示效果

内容的提问来源于stack exchange,提问作者Rolf of Saxony

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:30:53