我正在将Word (2003和2007)文档转换为HTML格式。我已经设法从Word文档中读取了文本、格式等。但是文档包含一些隐藏的文本,比如“Header Change History”,这些文本不需要显示在页面上。有没有办法从Word文档中识别隐藏的文本。
任何帮助都是非常有价值的。
发布于 2012-08-07 14:57:11
我不确定这是不是一个完整的(甚至是准确的)解决方案,但是对于DOCX格式的文件,您似乎可以检查字符运行是否隐藏在
XWPFRun cr;
if (cr.getCTR().getRPr().getVanish() != null){
// it is hidden
}这是从对XML进行逆向工程中获得的,至少在我的使用中它似乎是有效的。将非常高兴获得额外的(更有见地的)输入,以及一种在旧的二进制文件格式中做同样事情的方法。
发布于 2012-11-22 12:09:59
下面的代码片段有助于识别文本是否隐藏
POIFSFileSystem fs = null;
boolean isHidden = false;
try {
fs = new POIFSFileSystem(new FileInputStream(filesname));
HWPFDocument doc = new HWPFDocument(fs);
WordExtractor we = new WordExtractor(doc);
String[] paragraphs = we.getParagraphText();
System.out.println("Word Document has " + paragraphs.length
+ " paragraphs");
Range range = doc.getRange();
for (int k = 0; k < range.numParagraphs(); k++) {
org.apache.poi.hwpf.usermodel.Paragraph paragraph = range
.getParagraph(k);
paragraph.text().trim();
paragraph.text().replaceAll("\\cM?\r?\n", "");
for (int j = 0; j < paragraph.numCharacterRuns(); j++) {
org.apache.poi.hwpf.usermodel.CharacterRun cr = paragraph
.getCharacterRun(j);
if (cr.isVanished()) {
// it is hidden
System.out.println("text is hidden ");
isHidden = true;
break;
}
}https://stackoverflow.com/questions/7158955
复制相似问题