我正在將Word(2003和2007)文檔轉換爲HTML格式。我已經設法從Word文檔中讀取文本,格式等。但是該文檔包含一些隱藏文本,如「標題更改歷史記錄」,不需要在頁面上顯示。有什麼方法可以從Word文檔中識別隱藏的文本。使用Apache POI標識隱藏文本Word 2003/2007
任何幫助將是非常有價值的。
我正在將Word(2003和2007)文檔轉換爲HTML格式。我已經設法從Word文檔中讀取文本,格式等。但是該文檔包含一些隱藏文本,如「標題更改歷史記錄」,不需要在頁面上顯示。有什麼方法可以從Word文檔中識別隱藏的文本。使用Apache POI標識隱藏文本Word 2003/2007
任何幫助將是非常有價值的。
我不知道這是否是一個完整的(甚至精確)解決方案,但在DOCX格式的文件,似乎你可以檢查一個字符運行由
XWPFRun cr;
if (cr.getCTR().getRPr().getVanish() != null){
// it is hidden
}
了隱藏這從反向工程的XML,至少在我的用法似乎工作。對於額外的(更明智的)輸入以及以舊的二進制文件格式來做同樣的事情的方式會非常高興。
下面的代碼段有助於確定如果文本被隱藏
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;
}
}
從我在POI文檔中看到的只能讀取和操作標題,但沒有檢索歷史記錄的選項。如果有人能夠指出相關的參考文獻,那麼很容易承認錯誤。 –