当前位置: 首页 > 知识库问答 >
问题:

如何在Libre/Open Office中使用pyUNO库检查段落调整?

陶博涉
2023-03-14

com.sun.star.style.ParagraphProperties服务支持属性ParaAdjust,该属性支持com.sun.star.style.ParagraphAdjust(ParagraphProperties,ParagraphAdjust中的5个值。

cursor.ParaAdjust = com.sun.star.style.ParagraphAdjust.RIGHT
cursor.setPropertyValue('ParaAdjust', com.sun.star.style.ParagraphAdjust.RIGHT)
if cursor.ParaAdjust == com.sun.star.style.ParagraphAdjust.RIGHT:
    ...

但没有奏效。

检查:

type(cursor.ParaAdjust)
----> <class 'int'>
type(com.sun.star.style.ParagraphAdjust.RIGHT)
----> <class 'uno.Enum'>

是的,我假设这些是常量(参见下面的注释),这是我的错。

if cursor.ParaAdjust == com.sun.star.style.ParagraphAdjust.RIGHT.value:
    ...
type(com.sun.star.style.ParagraphAdjust.RIGHT.value)
----> <class 'string'>
print(com.sun.star.style.ParagraphAdjust.RIGHT.value)
----> 'RIGHT'
LEFT    = 0
RIGHT   = 1
BLOCK   = 2
CENTER  = 3
STRETCH = 0
(note that STRETCH is considered as LEFT,
 a bug or something not implemented?)
    null

注:

uno.getConstantByName('com.sun.star.style.ParagraphAdjust.RIGHT')

从4.1版本开始,它不再起作用了(正确的,不是常量)。

共有1个答案

常光明
2023-03-14

感谢OpenOffice论坛的“hanya”(链接),这里有一些用于映射paraguhadjust值的python代码:

def get_paragraph_adjust_values():
    ctx = uno.getComponentContext()
    tdm = ctx.getByName(
            "/singletons/com.sun.star.reflection.theTypeDescriptionManager")
    v = tdm.getByHierarchicalName("com.sun.star.style.ParagraphAdjust")
    return {name : value
            for name, value
            in zip(v.getEnumNames(), v.getEnumValues())}

在Python2.6中,它不支持词典的理解语法,可以使用dict()函数代替。

 类似资料:
  • 我是android新手,我对json有疑问:- 如果我有多行,如何在json中换行?像这样:< br>{ "联系人":< br>[ { "id": "c200 ",< br > "姓名":" Ravi Tamada ",< br > "电子邮件":" xxxx@gmail.com ",< br > "地址":" xx-xx-xxxx,x - street,x - country ",< br >

  • 我正在尝试枚举用户在(NeoLibreOpen)Office中选择的段落。

  • 我配置了一些插件目标,以便在构建生命周期(maven android应用程序)的某些阶段执行。但是我认为我在配置插件的过程中犯了一个错误,我想确保他们真的调用了。我找到了这个命令,它将打印所有生命周期阶段和目标:,但它没有显示我配置的目标。因此我有两个请求: > 命令是否显示我在pom标记中配置的目标? 如何确保在阶段中调用目标和在构建生命周期中调用的阶段?

  • 我想为整个Kafka流编写一个集成测试。 在我的生产代码中,我有: 在我的测试代码中,我使用KafkaProducer 我希望有一个钩子,表明调用了KafkaListener。我可以在测试中加入一些延迟,但这是一个糟糕的做法,我想避免它。 有没有更好的方法来等待正在处理的?

  • 我知道mongo不是用来格式化的,但是我如何创建一个博客文章并以段落形式显示它,而不是一个文本块? 例如,如果我有一个管理部分,我可以在其中创建博客文章,我将其输入textarea部分。。。 作为一名杰出的献身者,我们需要暂时的劳动和财富。但是,在最低限度上,我们需要一个实验室来进行日常工作。两人或两人在一个无教区的房间里互相指责。 作为一名杰出的献身者,我们需要暂时的劳动和财富。但是,在最低限度

  • 段落面板概述 可以使用“段落”面板(“窗口”>“文字”>“段落”)来更改列和段落的格式。当选择了文字或文字工具处于现用状态时,也可以使用“控制”面板中的选项来设置段落格式。 有关使用字符和段落样式的视频,请参阅 www.adobe.com/go/vid0047_cn。“段落”面板(显示了所有选项) A. 对齐方式 B. 左缩进 C. 首行左缩进 D. 段前间距 E. 连字符连接 F. 右缩进 G.