docx ファイルをマージできる Java ライブラリ (おそらく poi?) はありますか?[閉まっている]
質問
docx ファイルをマージできる Java アプリケーションを作成する必要があります。助言がありますか?
解決
以下のJava Apiを取り扱OpenXML MS Word文書Java:
があったんリコールの名前です。
としての機能要件:合併の文書は、技術的に難達成の結果としてenduserう。最APIの許さないのではないでしょう。だけを抽出する必要があり、ご希望の情報から文書を作成して新しい一つの文書この情報に基づいます。
他のヒント
POIで
私の解決策はあります:
public static void merge(InputStream src1, InputStream src2, OutputStream dest) throws Exception {
OPCPackage src1Package = OPCPackage.open(src1);
OPCPackage src2Package = OPCPackage.open(src2);
XWPFDocument src1Document = new XWPFDocument(src1Package);
CTBody src1Body = src1Document.getDocument().getBody();
XWPFDocument src2Document = new XWPFDocument(src2Package);
CTBody src2Body = src2Document.getDocument().getBody();
appendBody(src1Body, src2Body);
src1Document.write(dest);
}
private static void appendBody(CTBody src, CTBody append) throws Exception {
XmlOptions optionsOuter = new XmlOptions();
optionsOuter.setSaveOuter();
String appendString = append.xmlText(optionsOuter);
String srcString = src.xmlText();
String prefix = srcString.substring(0,srcString.indexOf(">")+1);
String mainPart = srcString.substring(srcString.indexOf(">")+1,srcString.lastIndexOf("<"));
String sufix = srcString.substring( srcString.lastIndexOf("<") );
String addPart = appendString.substring(appendString.indexOf(">") + 1, appendString.lastIndexOf("<"));
CTBody makeBody = CTBody.Factory.parse(prefix+mainPart+addPart+sufix);
src.set(makeBody);
}
Docx4jで私の解決策はあります:
public class MergeDocx {
private static long chunk = 0;
private static final String CONTENT_TYPE = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
public void mergeDocx(InputStream s1, InputStream s2, OutputStream os) throws Exception {
WordprocessingMLPackage target = WordprocessingMLPackage.load(s1);
insertDocx(target.getMainDocumentPart(), IOUtils.toByteArray(s2));
SaveToZipFile saver = new SaveToZipFile(target);
saver.save(os);
}
private static void insertDocx(MainDocumentPart main, byte[] bytes) throws Exception {
AlternativeFormatInputPart afiPart = new AlternativeFormatInputPart(new PartName("/part" + (chunk++) + ".docx"));
afiPart.setContentType(new ContentType(CONTENT_TYPE));
afiPart.setBinaryData(bytes);
Relationship altChunkRel = main.addTargetPart(afiPart);
CTAltChunk chunk = Context.getWmlObjectFactory().createCTAltChunk();
chunk.setId(altChunkRel.getId());
main.addObject(chunk);
}
}
確かにPOIは使えそうですね docx
ファイル。それらをマージする方法を見つけようとしていますか?
Apache POI 3.5 の新しい OOXML サポートを使用して DOCX ファイルからプレーン テキストを抽出するにはどうすればよいですか?
Aspose社のAPIは、これまでのところ、これまでワードのdocやdocxファイルのファイルをマージするための最良のですが、あなたが選ぶことができるAPIのカップル、あなたがそこに見つけることができるしているあなたは、フリーでオープンソースのツールが必要な場合、それは、無料またはオープンソースではありませんここではそれらについてのレビュー、
所属していません StackOverflow