、あなたは多分それはあなたの目的に役に立つことができ、このコードを使用して、すべてのdocxテキストellementsを印刷することができます。
public static void main(String[] args) throws Exception{
TestPrintLines test = new TestPrintLines();
String inputfilepath = System.getProperty("user.dir") + "/";
File file = new File(inputfilepath+"yourFile.docx");
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(file);
List<Object> texts= getAllelementObjects(wordMLPackage.getMainDocumentPart(),Text.class);
test.printLines(texts);
}
static public List<Object> getAllelementObjects(Object obj,Class<?> toSearch) {
List<Object> result = new ArrayList<Object>();
if (obj instanceof JAXBElement)
obj = ((JAXBElement<?>) obj).getValue();
if (obj.getClass().equals(toSearch))
result.add(obj);
else if (obj instanceof ContentAccessor) {
List<?> children = ((ContentAccessor) obj).getContent();
for (Object child : children) {
result.addAll(getAllelementObjects(child, toSearch));
}
}
return result;
}
static public void printLines(List<Object> objectsList){
for(int i = 0; i<objectsList.size(); i++) {
Object text = objectsList.get(i);
Text textElement = (Text) text;
System.out.println(textElement.getValue());
}
}
私はあなたの質問との概念的な問題があると思います。 Word文書の改行は、実際のレイアウト(ページサイズ、フォントサイズ、タイプなど)によって異なります。段落のテキストはおそらくすべてのライブラリの周りの単一のテキスト行として扱われます。実際には、(ドキュメントをレンダリングしてOCRなどをする以外の)オプションはありません。 – dpr
おそらく、あなたが達成しようとしていることをこの行ごとに分かち合うかもしれないので、誰かが別の解決法を提供する可能性があります。 – Tom