Раскрытие: Я работаю Plutext
Plutext в docx4j Enterprise Edition может объединить сложные презентации. Вы решаете, принимает ли результат внешний вид первого pptx или сохраняет индивидуальный внешний вид входов. Поскольку простое использование выглядит так:
String[] deck = {"deck1.pptx", "deck2.pptx"};
PresentationBuilder builder = new PresentationBuilder();
builder.setThemeTreatment(ThemeTreatment.RESPECT); // preserve appearance of each deck?
for (int i=0 ; i< deck.length; i++) {
// Create a SlideRange representing the slides in this pptx
SlideRange sr = new SlideRange(
(PresentationMLPackage)OpcPackage.load(
new File(DIR_IN + deck[i])));
// Add the slide range to the output
builder.addSlideRange(sr);
}
builder.getResult().save(
new File("OUT_MergeWholePresentations.pptx"));
Docx4j Enterprise Ed - это коммерческий продукт. Я не знаю открытого решения, которое предлагает то, что вы хотите с помощью API высокого уровня. Как и в случае с POI, вы можете реализовать то, что хотите, используя API с открытым исходным кодом docx4j/pptx4j с открытым исходным кодом, но для этого вам потребуется достойное понимание формата файла pptx и pptx4j. (docx4j/pptx4j использует JAXB, POI использует XML-компоненты)
В настоящее время POI игнорирует диаграммы, поэтому, если вы решили использовать POI, вам нужно будет реализовать копирование самостоятельно, то есть вы имеете доступ на низкоуровневый доступ к диаграмме/темам xmls и также необходимо обрабатывать отношения – kiwiwings