Ms word 如何使用ApachePOI保护word文档的某些部分

Ms word 如何使用ApachePOI保护word文档的某些部分,ms-word,apache-poi,protection,Ms Word,Apache Poi,Protection,我需要通过Java保护Word(2013)文档的部分内容,并使其成为只读。 使用ApachePOI可以吗?如果是,怎么做? 我只找到了保护整个文件的可能性 (我不仅需要保护页眉和页脚,还需要保护正文部分的一些行。)您可以在Word文档中实施多种保护。如果要强制执行只读保护,则可以通过使用和标记范围来排除保护范围 例如: import java.io.*; 导入org.apache.poi.wp.usermodel.*; 导入org.apache.poi.xwpf.usermodel.*; 导入o

我需要通过Java保护Word(2013)文档的部分内容,并使其成为只读。 使用ApachePOI可以吗?如果是,怎么做? 我只找到了保护整个文件的可能性


(我不仅需要保护页眉和页脚,还需要保护正文部分的一些行。)

您可以在
Word
文档中实施多种保护。如果要强制执行只读保护,则可以通过使用和标记范围来排除保护范围

例如:

import java.io.*;
导入org.apache.poi.wp.usermodel.*;
导入org.apache.poi.xwpf.usermodel.*;
导入org.openxmlformats.schemas.wordprocessingml.x2006.main.CTPermStart;
导入org.openxmlformats.schemas.wordprocessingml.x2006.main.STEdGrp;
公共类CreateWordPartialProtected{
公共静态void main(字符串[]args)引发异常{
XWPFDocument document=新的XWPFDocument();
//创建标题
XWPFHeader header=document.createHeader(HeaderFooterType.DEFAULT);
XWPFParagraph paragraph paragraph=header.createParagraph();
段落.设置对齐(段落对齐.左);
XWPFRun=段落.createRun();
run.setText(“页眉:”);
//创建页脚
xwpfooter footer=document.createFooter(HeaderFooterType.DEFAULT);
段落=页脚。创建段落();
段落.设置对齐(段落对齐.中间);
run=段落.createRun();
run.setText(“页面”);
段落.getCTP().addNewFldSimple().setInstr(“第\\*页合并格式”);
run=段落.createRun();
run.setText(“of”);
段落.getCTP().addNewFldSimple().setInstr(“NUMPAGES\\\*MERGEFORMAT”);
//正文内容
段落=document.create段落();
run=段落.createRun();
run.setText(“此身体部位受保护”);
段落=document.create段落();
//CTPermStart标记未保护范围的开始
CTPermStart CTPermStart=document.getDocument().getBody().addNewPermStart();
ctPermStart.setEdGrp(STEdGrp.everybody);
ctPermStart.setId(“123456”);//注意Id
段落=document.create段落();
run=段落.createRun();
run.setText(“此身体部位未受保护”);
//CTPerm标记未保护范围的结束
document.getDocument().getBody().addNewPermEnd().setId(“123456”);//注意相同的Id
段落=document.create段落();
段落=document.create段落();
run=段落.createRun();
run.setText(“此身体部位再次受到保护”);
段落=document.create段落();
document.enforceReadonlyProtection();//强制只读保护
FileOutputStream out=新的FileOutputStream(“CreateWordPartialProtected.docx”);
文件。写(出);
out.close();
document.close();
}
}
此代码需要中提到的所有模式
ooxml模式-*.jar
的完整
jar


如果您想强制实施填写表单保护,那么它将更加复杂,因为需要多个部分。

如何使用MS Word实现这一点?如果转到“开发人员”选项卡并“限制编辑”,您可以将部分文档定义为“只读”。(使用“编辑限制”和“选择节…”可以定义要保护/不保护的节)非常感谢您的回答!事实上,我已经加载了文档,之后必须定义要保护的部分。我会检查你的建议,并尝试将其转化为我所需要的…:)@玛丽亚:这正是问题需要澄清的原因。因此,如果您遇到问题和下一个问题,请确保您提供了一份关于您已经拥有的内容的报告,并准确地描述了您遇到问题的地方。