Example usage for org.apache.poi.xslf.usermodel XSLFRelation VML_DRAWING

List of usage examples for org.apache.poi.xslf.usermodel XSLFRelation VML_DRAWING

Introduction

In this page you can find the example usage for org.apache.poi.xslf.usermodel XSLFRelation VML_DRAWING.

Prototype

XSLFRelation VML_DRAWING

To view the source code for org.apache.poi.xslf.usermodel XSLFRelation VML_DRAWING.

Click Source Link

Usage

From source file:mj.ocraptor.extraction.tika.parser.microsoft.ooxml.XSLFPowerPointExtractorDecorator.java

License:Apache License

/**
 * In PowerPoint files, slides have things embedded in them, and slide
 * drawings which have the images// w  w  w  .j  a v  a2s . c o  m
 */
@Override
protected List<PackagePart> getMainDocumentParts() throws TikaException {
    List<PackagePart> parts = new ArrayList<PackagePart>();
    XMLSlideShow slideShow = (XMLSlideShow) extractor.getDocument();
    XSLFSlideShow document = null;
    try {
        document = slideShow._getXSLFSlideShow(); // TODO Avoid this in future
    } catch (Exception e) {
        throw new TikaException(e.getMessage()); // Shouldn't happen
    }

    for (CTSlideIdListEntry ctSlide : document.getSlideReferences().getSldIdList()) {
        // Add the slide
        PackagePart slidePart;
        try {
            slidePart = document.getSlidePart(ctSlide);
        } catch (IOException e) {
            throw new TikaException("Broken OOXML file", e);
        } catch (XmlException xe) {
            throw new TikaException("Broken OOXML file", xe);
        }
        parts.add(slidePart);

        // If it has drawings, return those too
        try {
            for (PackageRelationship rel : slidePart
                    .getRelationshipsByType(XSLFRelation.VML_DRAWING.getRelation())) {
                if (rel.getTargetMode() == TargetMode.INTERNAL) {
                    PackagePartName relName = PackagingURIHelper.createPartName(rel.getTargetURI());
                    parts.add(rel.getPackage().getPart(relName));
                }
            }
        } catch (InvalidFormatException e) {
            throw new TikaException("Broken OOXML file", e);
        }
    }

    return parts;
}

From source file:org.apache.tika.parser.microsoft.ooxml.SXSLFPowerPointExtractorDecorator.java

License:Apache License

private void addSlideParts(PackagePart slidePart, List<PackagePart> parts) {

    for (String relation : new String[] { XSLFRelation.VML_DRAWING.getRelation(),
            XSLFRelation.SLIDE_LAYOUT.getRelation(), XSLFRelation.NOTES_MASTER.getRelation(),
            XSLFRelation.NOTES.getRelation() }) {
        try {//from w  w  w . ja v a2 s.c  o m
            for (PackageRelationship packageRelationship : slidePart.getRelationshipsByType(relation)) {
                if (packageRelationship.getTargetMode() == TargetMode.INTERNAL) {
                    PackagePartName relName = PackagingURIHelper
                            .createPartName(packageRelationship.getTargetURI());
                    parts.add(packageRelationship.getPackage().getPart(relName));
                }
            }
        } catch (InvalidFormatException e) {

        }
    }
    //and slide of course
    parts.add(slidePart);

}

From source file:org.apache.tika.parser.microsoft.ooxml.XSLFPowerPointExtractorDecorator.java

License:Apache License

/**
 * In PowerPoint files, slides have things embedded in them,
 * and slide drawings which have the images
 *///from w ww.  ja v a2 s  . c o m
@Override
protected List<PackagePart> getMainDocumentParts() throws TikaException {
    List<PackagePart> parts = new ArrayList<>();
    XSLFSlideShow document = null;
    try {
        document = new XSLFSlideShow(extractor.getPackage());
    } catch (Exception e) {
        throw new TikaException(e.getMessage()); // Shouldn't happen
    }

    CTSlideIdList ctSlideIdList = document.getSlideReferences();
    if (ctSlideIdList != null) {
        for (int i = 0; i < ctSlideIdList.sizeOfSldIdArray(); i++) {
            CTSlideIdListEntry ctSlide = ctSlideIdList.getSldIdArray(i);
            // Add the slide
            PackagePart slidePart;
            try {
                slidePart = document.getSlidePart(ctSlide);
            } catch (IOException e) {
                throw new TikaException("Broken OOXML file", e);
            } catch (XmlException xe) {
                throw new TikaException("Broken OOXML file", xe);
            }
            parts.add(slidePart);

            // If it has drawings, return those too
            try {
                for (PackageRelationship rel : slidePart
                        .getRelationshipsByType(XSLFRelation.VML_DRAWING.getRelation())) {
                    if (rel.getTargetMode() == TargetMode.INTERNAL) {
                        PackagePartName relName = PackagingURIHelper.createPartName(rel.getTargetURI());
                        parts.add(rel.getPackage().getPart(relName));
                    }
                }
            } catch (InvalidFormatException e) {
                throw new TikaException("Broken OOXML file", e);
            }
        }
    }
    return parts;
}