getPresentationDetails method
Function for processing .pptx file
Implementation
void getPresentationDetails(ArchiveFile presentationFile, Presentation presentation) {
final fileContent = utf8.decode(presentationFile.content);
final presentationDoc = xml.XmlDocument.parse(fileContent);
var slidesRoot = presentationDoc.findAllElements("p:sldIdLst");
if (slidesRoot.isNotEmpty) {
var slides = slidesRoot.first.findAllElements("p:sldId");
if (slides.isNotEmpty) {
for (var slide in slides) {
int id = 0;
String rId = "";
var tempId = slide.getAttribute("id");
if (tempId != null) {
id = int.parse(tempId);
}
var tempRid = slide.getAttribute("r:id");
if (tempRid != null) {
rId = tempRid;
}
presentation.slides.add(Slide(id, rId, ""));
}
}
}
var slideSz = presentationDoc.findAllElements("p:sldSz");
if (slideSz.isNotEmpty) {
var tempCX = slideSz.first.getAttribute("cx");
if (tempCX != null) {
presentation.width = int.parse(tempCX);
}
var tempCY = slideSz.first.getAttribute("cy");
if (tempCY != null) {
presentation.height = int.parse(tempCY);
}
}
var masterSlidesRoot = presentationDoc.findAllElements("p:sldMasterIdLst");
if (masterSlidesRoot.isNotEmpty) {
var masterSlides = masterSlidesRoot.first.findAllElements("p:sldMasterId");
if (masterSlides.isNotEmpty) {
for (var slide in masterSlides) {
int id = 0;
String rId = "";
var tempId = slide.getAttribute("id");
if (tempId != null) {
id = int.parse(tempId);
}
var tempRid = slide.getAttribute("r:id");
if (tempRid != null) {
rId = tempRid;
}
presentation.masterSlides.add(Slide(id, rId, ""));
}
}
}
}