Example usage for org.apache.poi.openxml4j.opc PackageRelationship getRelationshipType

List of usage examples for org.apache.poi.openxml4j.opc PackageRelationship getRelationshipType

Introduction

In this page you can find the example usage for org.apache.poi.openxml4j.opc PackageRelationship getRelationshipType.

Prototype

public String getRelationshipType() 

Source Link

Usage

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

License:Apache License

private void handleEmbeddedParts(ContentHandler handler) throws TikaException, IOException, SAXException {
    try {//from   ww  w .ja v  a2 s. c  o m
        for (PackagePart source : getMainDocumentParts()) {
            for (PackageRelationship rel : source.getRelationships()) {

                URI sourceURI = rel.getSourceURI();
                String sourceDesc;
                if (sourceURI != null) {
                    sourceDesc = getJustFileName(sourceURI.getPath());
                    if (sourceDesc.startsWith("slide")) {
                        sourceDesc += "_";
                    } else {
                        sourceDesc = "";
                    }
                } else {
                    sourceDesc = "";
                }
                if (rel.getTargetMode() == TargetMode.INTERNAL) {
                    PackagePart target;

                    try {
                        target = source.getRelatedPart(rel);
                    } catch (IllegalArgumentException ex) {
                        continue;
                    }

                    String type = rel.getRelationshipType();
                    if (RELATION_OLE_OBJECT.equals(type) && TYPE_OLE_OBJECT.equals(target.getContentType())) {
                        handleEmbeddedOLE(target, handler, sourceDesc + rel.getId());
                    } else if (RELATION_AUDIO.equals(type) || RELATION_IMAGE.equals(type)
                            || RELATION_PACKAGE.equals(type) || RELATION_OLE_OBJECT.equals(type)) {
                        handleEmbeddedFile(target, handler, sourceDesc + rel.getId());
                    }
                }
            }
        }
    } catch (InvalidFormatException e) {
        throw new TikaException("Broken OOXML file", e);
    }
}

From source file:org.roda.common.certification.OOXMLSignatureUtils.java

public static void runDigitalSignatureStrip(Path input, Path output)
        throws IOException, InvalidFormatException {

    CopyOption[] copyOptions = new CopyOption[] { StandardCopyOption.REPLACE_EXISTING };
    Files.copy(input, output, copyOptions);
    OPCPackage pkg = OPCPackage.open(output.toString(), PackageAccess.READ_WRITE);

    ArrayList<PackagePart> pps = pkg.getPartsByContentType(SIGN_CONTENT_TYPE_OOXML);
    for (PackagePart pp : pps) {
        pkg.removePart(pp);//  ww w  .j  ava2s. c om
    }

    ArrayList<PackagePart> ppct = pkg.getPartsByRelationshipType(SIGN_REL_TYPE_OOXML);
    for (PackagePart pp : ppct) {
        pkg.removePart(pp);
    }

    for (PackageRelationship r : pkg.getRelationships()) {
        if (r.getRelationshipType().equals(SIGN_REL_TYPE_OOXML)) {
            pkg.removeRelationship(r.getId());
        }
    }

    pkg.close();
}

From source file:org.roda.core.plugins.plugins.characterization.OOXMLSignatureUtils.java

public static void runDigitalSignatureStrip(Path input, Path output)
        throws IOException, InvalidFormatException {

    CopyOption[] copyOptions = new CopyOption[] { StandardCopyOption.REPLACE_EXISTING };
    Files.copy(input, output, copyOptions);
    try (OPCPackage pkg = OPCPackage.open(output.toString(), PackageAccess.READ_WRITE)) {

        ArrayList<PackagePart> pps = pkg.getPartsByContentType(SIGN_CONTENT_TYPE_OOXML);
        for (PackagePart pp : pps) {
            pkg.removePart(pp);/*from ww w .j  a v  a2s  . c o m*/
        }

        ArrayList<PackagePart> ppct = pkg.getPartsByRelationshipType(SIGN_REL_TYPE_OOXML);
        for (PackagePart pp : ppct) {
            pkg.removePart(pp);
        }

        for (PackageRelationship r : pkg.getRelationships()) {
            if (r.getRelationshipType().equals(SIGN_REL_TYPE_OOXML)) {
                pkg.removeRelationship(r.getId());
            }
        }
    }
}