Package org.openxml4j.opc

Examples of org.openxml4j.opc.PackagePart


  /**
   * Returns all the comments for the given slide
   */
  public CTCommentList getSlideComments(CTSlideIdListEntry slide) throws IOException, XmlException {
    PackageRelationshipCollection commentRels;
    PackagePart slidePart = getSlidePart(slide);
   
    try {
      commentRels = slidePart.getRelationshipsByType(COMMENT_RELATION_TYPE);
    } catch(InvalidFormatException e) {
      throw new IllegalStateException(e);
    }
   
    if(commentRels.size() == 0) {
      // No comments for this slide
      return null;
    }
    if(commentRels.size() > 1) {
      throw new IllegalStateException("Expecting 0 or 1 comments for a slide, but found " + commentRels.size());
    }
   
    try {
      PackagePart cPart = getTargetPart(
          commentRels.getRelationship(0)
      );
      CmLstDocument commDoc =
        CmLstDocument.Factory.parse(cPart.getInputStream());
      return commDoc.getCmLst();
    } catch(InvalidFormatException e) {
      throw new IllegalStateException(e);
    }
  }
View Full Code Here


              throw new IOException("Unable to load styles - " + e.toString());
            }

            // Load individual sheets
            for (CTSheet ctSheet : this.workbook.getSheets().getSheetArray()) {
                PackagePart part = getPackagePart(ctSheet);
                if (part == null) {
                  log.log(POILogger.WARN, "Sheet with name " + ctSheet.getName() + " and r:id " + ctSheet.getId()+ " was defined, but didn't exist in package, skipping");
                    continue;
                }

                // Load child streams of the sheet
                ArrayList<? extends XSSFModel> childModels;
                CommentsSource comments = null;
                ArrayList<Drawing> drawings;
                ArrayList<Control> controls;
                try {
                  // Get the comments for the sheet, if there are any
                  childModels = XSSFRelation.SHEET_COMMENTS.loadAll(part);
                  if(childModels.size() > 0) {
                    comments = (CommentsSource)childModels.get(0);
                  }

                  // Get the drawings for the sheet, if there are any
                  drawings = (ArrayList<Drawing>)XSSFRelation.VML_DRAWINGS.loadAll(part);
                  // Get the activeX controls for the sheet, if there are any
                  controls = (ArrayList<Control>)XSSFRelation.ACTIVEX_CONTROLS.loadAll(part);
                } catch(Exception e) {
                  throw new RuntimeException("Unable to construct child part",e);
                }

                // Now create the sheet
                WorksheetDocument worksheetDoc = WorksheetDocument.Factory.parse(part.getInputStream());
                XSSFSheet sheet = new XSSFSheet(ctSheet, worksheetDoc.getWorksheet(), this, comments, drawings, controls);
                this.sheets.add(sheet);

                // Process external hyperlinks for the sheet,
                //  if there are any
                PackageRelationshipCollection hyperlinkRels =
                  part.getRelationshipsByType(XSSFRelation.SHEET_HYPERLINKS.getRelation());
                sheet.initHyperlinks(hyperlinkRels);

                // Get the embeddings for the workbook
                for(PackageRelationship rel : part.getRelationshipsByType(XSSFRelation.OLEEMBEDDINGS.getRelation()))
                    embedds.add(getTargetPart(rel)); // TODO: Add this reference to each sheet as well

                for(PackageRelationship rel : part.getRelationshipsByType(XSSFRelation.PACKEMBEDDINGS.getRelation()))
                    embedds.add(getTargetPart(rel));
            }
        } catch (XmlException e) {
            throw new IOException(e.toString());
        } catch (InvalidFormatException e) {
View Full Code Here

    public List<PictureData> getAllPictures() {
        // In OOXML pictures are referred to in sheets
        List<PictureData> pictures = new LinkedList<PictureData>();
        for (CTSheet ctSheet : this.workbook.getSheets().getSheetArray()) {
            try {
                PackagePart sheetPart = getPackagePart(ctSheet);
                if (sheetPart == null) {
                    continue;
                }
                PackageRelationshipCollection prc = sheetPart.getRelationshipsByType(XSSFRelation.DRAWINGS.getRelation());
                for (PackageRelationship rel : prc) {
                    PackagePart drawingPart = getTargetPart(rel);
                    PackageRelationshipCollection prc2 = drawingPart.getRelationshipsByType(XSSFRelation.IMAGES.getRelation());
                    for (PackageRelationship rel2 : prc2) {
                        PackagePart imagePart = getTargetPart(rel2);
                        XSSFPictureData pd = new XSSFPictureData(imagePart);
                        pictures.add(pd);
                    }
                }
            } catch (InvalidFormatException e) {
View Full Code Here

            // Main part
            PackagePartName corePartName = PackagingURIHelper.createPartName(workbookRelation.getDefaultFileName());
            // Create main part relationship
            pkg.addRelationship(corePartName, TargetMode.INTERNAL, PackageRelationshipTypes.CORE_DOCUMENT, "rId1");
            // Create main document part
            PackagePart corePart = pkg.createPart(corePartName, workbookRelation.getContentType());
            OutputStream out;

            XmlOptions xmlOptions = new XmlOptions();
            // Requests use of whitespace for easier reading
            xmlOptions.setSavePrettyPrint();
            xmlOptions.setSaveOuter();
            xmlOptions.setUseDefaultNamespace();
           
            // Write out our sheets, updating the references
            //  to them in the main workbook as we go
            for (int i=0 ; i < this.getNumberOfSheets(); i++) {
              int sheetNumber = (i+1);
              XSSFSheet sheet = (XSSFSheet) this.getSheetAt(i);
                PackagePartName partName = PackagingURIHelper.createPartName(
                    XSSFRelation.WORKSHEET.getFileName(sheetNumber));
                PackageRelationship rel =
                   corePart.addRelationship(partName, TargetMode.INTERNAL, XSSFRelation.WORKSHEET.getRelation(), "rSheet" + sheetNumber);
                PackagePart part = pkg.createPart(partName, XSSFRelation.WORKSHEET.getContentType());
                
                // XXX This should not be needed, but apparently the setSaveOuter call above does not work in XMLBeans 2.2
                xmlOptions.setSaveSyntheticDocumentElement(new QName(CTWorksheet.type.getName().getNamespaceURI(), "worksheet"));
                sheet.save(part, xmlOptions);
                
View Full Code Here

    //  feature of the file format yet
    CTSectPr sectPr = doc.getDocumentBody().getSectPr();
    for(int i=0; i<sectPr.sizeOfHeaderReferenceArray(); i++) {
      // Get the header
      CTHdrFtrRef ref = sectPr.getHeaderReferenceArray(i);
      PackagePart hdrPart = doc.getPartById(ref.getId());
      XWPFHeader hdr = new XWPFHeader(
          HdrDocument.Factory.parse(hdrPart.getInputStream()).getHdr()
      );

      // Assign it
      if(ref.getType() == STHdrFtr.FIRST) {
        firstPageHeader = hdr;
      } else if(ref.getType() == STHdrFtr.EVEN) {
        evenPageHeader = hdr;
      } else {
        defaultHeader = hdr;
      }
    }
    for(int i=0; i<sectPr.sizeOfFooterReferenceArray(); i++) {
      // Get the footer
      CTHdrFtrRef ref = sectPr.getFooterReferenceArray(i);
      PackagePart ftrPart = doc.getPartById(ref.getId());
      XWPFFooter ftr = new XWPFFooter(
          FtrDocument.Factory.parse(ftrPart.getInputStream()).getFtr()
      );

      // Assign it
      if(ref.getType() == STHdrFtr.FIRST) {
        firstPageFooter = ftr;
View Full Code Here

    }


    @Override
    protected void commit() throws IOException {
        PackagePart part = getPackagePart();
        OutputStream out = part.getOutputStream();
        write(out);
        out.close();
    }
View Full Code Here

    presentationDoc =
      PresentationDocument.Factory.parse(getCorePart().getInputStream());
   
        embedds = new LinkedList<PackagePart>();
    for (CTSlideIdListEntry ctSlide : getSlideReferences().getSldIdArray()) {
            PackagePart slidePart =
                  getTargetPart(getCorePart().getRelationship(ctSlide.getId2()));
           
            for(PackageRelationship rel : slidePart.getRelationshipsByType(OLE_OBJECT_REL_TYPE))
                embedds.add(getTargetPart(rel)); // TODO: Add this reference to each slide as well
           
            for(PackageRelationship rel : slidePart.getRelationshipsByType(PACK_OBJECT_REL_TYPE))
                  embedds.add(getTargetPart(rel));
    }
  }
View Full Code Here

  /**
   * Returns the low level slide master object from
   *  the supplied slide master reference
   */
  public CTSlideMaster getSlideMaster(CTSlideMasterIdListEntry master) throws IOException, XmlException {
    PackagePart masterPart = getSlideMasterPart(master);
    SldMasterDocument masterDoc =
      SldMasterDocument.Factory.parse(masterPart.getInputStream());
    return masterDoc.getSldMaster();
  }
View Full Code Here

  /**
   * Returns the low level slide object from
   *  the supplied slide reference
   */
  public CTSlide getSlide(CTSlideIdListEntry slide) throws IOException, XmlException {
    PackagePart slidePart = getSlidePart(slide);
    SldDocument slideDoc =
      SldDocument.Factory.parse(slidePart.getInputStream());
    return slideDoc.getSld();
  }
View Full Code Here

   * Gets the PackagePart of the notes for the
   *  given slide, or null if there isn't one.
   */
  public PackagePart getNodesPart(CTSlideIdListEntry parentSlide) throws IOException, XmlException {
    PackageRelationshipCollection notes;
    PackagePart slidePart = getSlidePart(parentSlide);
   
    try {
      notes = slidePart.getRelationshipsByType(NOTES_RELATION_TYPE);
    } catch(InvalidFormatException e) {
      throw new IllegalStateException(e);
    }
   
    if(notes.size() == 0) {
View Full Code Here

TOP

Related Classes of org.openxml4j.opc.PackagePart

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.