Document doc = new Document("doc1.doc"); Document doc2 = new Document("doc2.doc"); Bookmark bookmark = doc.getRange().getBookmarks().get("start"); Bookmark endBk = doc.getRange().getBookmarks().get("end"); Node currentNode = bookmark.getBookmarkStart().getParentNode().getNextSibling(); CompositeNode start = doc2.getRange().getBookmarks().get("start").getBookmarkStart().getParentNode().getParentNode(); while (currentNode != null) { //去除空白 (图片无法识别) // boolean noText = currentNode.getText().trim().isEmpty(); // boolean noPic = true; // if (currentNode instanceof Shape) { // Shape shape = (Shape) currentNode; // if (shape.hasImage()) { // noPic = false; // } // } // if (noText && noPic) { // currentNode = currentNode.getNextSibling(); // if (currentNode == endBk.getBookmarkStart().getParentNode()) { // break; // } // continue; // } Node node = doc2.importNode(currentNode, true); start = (CompositeNode) start.getParentNode().insertAfter(node, start); currentNode = currentNode.getNextSibling(); if (currentNode == endBk.getBookmarkStart().getParentNode()) { break; } } doc2.save("doc2.doc");
//保留格式
if (oldBuilder.moveToBookmark(afterBkStart)) { Bookmark startBk = oldDocument.getRange().getBookmarks().get(afterBkStart); Bookmark endBk = oldDocument.getRange().getBookmarks().get(afterBkEnd); Node currentNode = startBk.getBookmarkStart().getParentNode().getNextSibling(); CompositeNode start = subDocument.getRange().getBookmarks().get(afterBkStart).getBookmarkStart().getParentNode(); while (currentNode != null) { if (currentNode instanceof Table) { ((Table) currentNode).autoFit(AutoFitBehavior.FIXED_COLUMN_WIDTHS); } Node node = subDocument.importNode(currentNode, true, ImportFormatMode.KEEP_SOURCE_FORMATTING); start = (CompositeNode) start.getParentNode().insertAfter(node, start); currentNode = currentNode.getNextSibling(); if (endBk.getBookmarkStart().getParentNode() == currentNode) { break; } } }