Я пытаюсь создать список объектов слайдов pptx4j из библиотеки docx4j Java. Я загрузил пример кода из http://www.docx4java.org/, и я попытался его изменить, поэтому вместо печати одного слайда он может печатать столько, сколько захочу, добавив немного для цикла, который создает каждый слайд.Как я могу создать список объектов docx4j в java?
Это код для создания одного слайда:
SlidePart slidePart = presentationMLPackage.createSlidePart(pp, layoutPart,
new PartName("/ppt/slides/slide1.xml"));
Shape sample = ((Shape)XmlUtils.unmarshalString(SAMPLE_SHAPE, Context.jcPML));
slidePart.getJaxbElement().getCSld().getSpTree().getSpOrGrpSpOrGraphicFrame().add(sample);
так я пытался делать для цикла, который повторяет это для каждого слайда, но я не знаю, как создавать объекты и добавлять их в массив , я попытался добавить объект непосредственно, но это дает мне ошибки, это мой для:
ArrayList<Object[]> lista =new ArrayList<>();
Object[] diapositivas = new Object[3];
for (int i=0;i<3;i++){
diapositivas[i] =(SlidePart) presentationMLPackage.createSlidePart(pp, layoutPart,
new PartName("/ppt/slides/slide[i+1].xml"));
Shape sample = ((Shape)XmlUtils.unmarshalString(SAMPLE_SHAPE, Context.jcPML));
diapositivas[i].setJaxbElement(SlidePart.createSld());
lista.add(diapositivas);
}
я знаю, что я неудачу в чем-то основном здесь, но я не создал массивы объектов раньше, я попытался объявляя полный объект на каждую итерацию, но тогда я не мог изменить имя объекта для ea ch, чтобы он не работал.
это дает мне ошибку, не может найти символ для метода getJaxbElement()
и когда я запускаю программу она дает мне эти ошибки в моем выходе:
ant -f "C:\\Documents and Settings\\Administrador\\Mis documentos\\NetBeansProjects\\JavaApplication2" -Dignore.failing.tests=true -Dnb.wait.for.caches=true -Dnb.internal.action.name=test test
init:
deps-jar:
Updating property file: C:\Documents and Settings\Administrador\Mis documentos\NetBeansProjects\JavaApplication2\build\built-jar.properties
init:
deps-clean:
Updating property file: C:\Documents and Settings\Administrador\Mis documentos\NetBeansProjects\JavaApplication2\build\built-clean.properties
Deleting directory C:\Documents and Settings\Administrador\Mis documentos\NetBeansProjects\JavaApplication2\build
clean:
Created dir: C:\Documents and Settings\Administrador\Mis documentos\NetBeansProjects\JavaApplication2\build\classes
Created dir: C:\Documents and Settings\Administrador\Mis documentos\NetBeansProjects\JavaApplication2\build\empty
Created dir: C:\Documents and Settings\Administrador\Mis documentos\NetBeansProjects\JavaApplication2\build\generated-sources\ap-source-output
Compiling 7 source files to C:\Documents and Settings\Administrador\Mis documentos\NetBeansProjects\JavaApplication2\build\classes
C:\Documents and Settings\Administrador\Mis documentos\NetBeansProjects\JavaApplication2\src\org\docx4j\samples\CreateHelloWorld.java:55: error: cannot find symbol
diapositivas[i].getJaxbElement().getCSld().getSpTree().getSpOrGrpSpOrGraphicFrame().add(sample);
symbol: method getJaxbElement()
location: class Object
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
1 error
C:\Documents and Settings\Administrador\Mis documentos\NetBeansProjects\JavaApplication2\nbproject\build-impl.xml:923: The following error occurred while executing this line:
C:\Documents and Settings\Administrador\Mis documentos\NetBeansProjects\JavaApplication2\nbproject\build-impl.xml:263: Compile failed; see the compiler error output for details.
BUILD FAILED (total time: 7 seconds)
Размещение 'слайд [я + 1]' в 'строку PartName' не будет автоматически получить значение из array, потому что это просто еще одна строка, что касается Java. Чтобы создать строку с фактическим значением, выполните отдельные значения: '/ ppt/slides /" + slide [i + 1] + ".xml" '(если у вас есть массив с именем' slide'). – Vulcan
Я этого не заметил. Также он дает мне не найти символьную ошибку для метода getJaxbElement(). Знает ли java, что diapositivas [i] является объектом «SlidePart»? Я попытался сделать его явным путем литья '(SlidePart)' в представлении 'diapositivas [i] = (SlidePart) presentationPackage.createSlidePart (pp, layoutPart, new PartName ("/ppt/slides/slide [i + 1] .xml ")) ;, но я не знаю, работает ли он –
@ Vulcan делает java понимать, что это объект SlidePart? –