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

Apache POI在中设置permisson区域。docx文件

崔宜修
2023-03-14

我说的“许可区域”是什么意思?您可以通过将整个文档设置为只读来保护它,但可以保留可以编辑的区域。

我试图在一些中定义权限区域。docx文档。据我所知,POI库中没有API可以实现这一点——我唯一发现的是CTP类中与permisson相关的方法,但我不知道如何使用它。我的目标是在权限区域中包含一个或多个XWPFRun,以生成如下内容:

<w:permStart w:edGrp="everyone" w:id="1371696447"/>
<w:r>
    <w:rPr>
        <w:sz w:val="28"/>
        <w:szCs w:val="28"/>
        <w:lang w:val="cs-CZ"/>
    </w:rPr>
    <w:t>test3</w:t>
</w:r>
<w:permEnd w:id="1371696447"/>

我该怎么做?

共有1个答案

夏理
2023-03-14

我找到了解决办法。我不知道这是不是最好的方法,但对我来说很好:

// get DOM nodes of paragraph containing target run
// and run itself
Node paragraphNode = paragraph.getCTP().getDomNode();
Node runNode = run.getCTR().getDomNode();

// generate random id for perm region
String id = Integer.toString(this.random.nextInt());

// create starting node, set id and who can edit it
CTPermStart permStart = paragraph.getCTP().addNewPermStart();
permStart.setId(id);
permStart.setEdGrp(STEdGrp.EVERYONE);
Node permStartNode = permStart.getDomNode();

// create ending node and set id
CTPerm permEnd = paragraph.getCTP().addNewPermEnd();
permEnd.setId(id);
Node permEndNode = permEnd.getDomNode();

// enclose target run with created start/end nodes
paragraphNode.insertBefore(permStartNode, runNode);
paragraphNode.insertBefore(permEndNode, runNode.getNextSibling());
 类似资料:
  • 有人知道如何改变页面大小(从字母到A4)为(docx)吗? 我找不到任何像XSSFDocument(xlsx)中那样的打印设置。 谢谢你的帮助。

  • 我正在尝试创建一个包含多列的word文档。这样做(而不是使用表)的原因是,数据将跨越多个页面,在添加到新页面之前,我只能用列填充整个页面。 可以用ApachePOI实现吗?谢谢

  • 问题内容: 如何使用jQuery在文本字段中设置光标位置?我有一个带有内容的文本字段,我希望用户将光标放在该字段上时将光标定位在某个偏移处。该代码应该看起来像这样: 该setCursorPosition函数的实现是什么样的?如果您的文本字段的内容为abcdefg,则此调用将导致光标的定位如下:abcd | efg。 Java具有类似的功能setCaretPosition。javascript是否存

  • 我创建了一个控制器,根据加密的GET参数手动设置安全令牌。我使用它来创建一个远程登录URL,当用户遵循此链接时,该URL将执行登录。 现在我想添加区域设置。当提供了朗参数时,它应该设置区域设置。我添加了这个到我的控制器: 正在根据开发栏将_locale变量设置到设置中。但是,未加载语言文件,它将返回默认语言。 我读过关于创建监听器来实现这一点的文章,但是在我看来,当你想在网址中提供语言时,这是有用

  • 我想强制我的Symfony 2.5应用程序的区域设置为。我希望这个区域设置用于strftime()函数。 我的: 我正在我的一个控制器中使用以下代码来调试: 当这样执行时,它显示:。 但是,当第一行未注释时,它会显示:,因此区域设置已安装在系统中并正常工作。 我如何使Symfony始终使用配置中指定的语言环境? $locale-a: