Apache POI
を使用して、Microsoft Word文書から一連の連続した段落を削除しようとしています。XWPFParagraphを削除すると段落記号(¶)が残る
私が理解しているものから、段落を削除すると、このようにその実行のすべてを取り除くことによって可能である。実際には
/*
* Deletes the given paragraph.
*/
public static void deleteParagraph(XWPFParagraph p) {
if (p != null) {
List<XWPFRun> runs = p.getRuns();
//Delete all the runs
for (int i = runs.size() - 1; i >= 0; i--) {
p.removeRun(i);
}
p.setPageBreak(false); //Remove the eventual page break
}
}
、それは動作しますが、奇妙な何かがあります。削除された段落のブロックはドキュメントから消えませんが、空の行のセットで変換されます。すべての段落が新しい行に変換されるのと同じです。
コードから段落の内容を印刷すると、実際にはスペースが(それぞれ削除されたため)表示されます。有効なフォーマットマークの可視化と、文書から直接コンテンツを見て、私はこの見ることができます:
を¶の縦の列は削除された要素のブロックに対応しています。
あなたはその考えがありますか?私の段落はに完全にを削除したいと思います。
p.setSpacingAfter(0);
p.setSpacingAfterLines(0);
p.setSpacingBefore(0);
p.setSpacingBeforeLines(0);
p.setIndentFromLeft(0);
p.setIndentFromRight(0);
p.setIndentationFirstLine(0);
p.setIndentationLeft(0);
p.setIndentationRight(0);
をしかし、運を持つ:
私も(setText()
で)テキストを置き換えることによって、そして、この方法を自動的に追加することができ、最終的にスペースを削除することで試してみました。
グレート、ありがとうございました! –