Package org.docx4j.openpackaging.parts

Examples of org.docx4j.openpackaging.parts.Part


      return;
    }
   
   
    String relationshipType = r.getType();   
    Part part;
   
    if (pkg.handled.get(resolvedPartUri)!=null) {
     
      // The source Part (or Package) might have a convenience
      // method for this
      part = pkg.getParts().getParts().get(new PartName("/" + resolvedPartUri));
      if (source.setPartShortcut(part, relationshipType ) ) {
        log.debug("Convenience method established from " + source.getPartName()
            + " to " + part.getPartName());
     
     
      // v3.2.1: also note this additional source rel
      part.getSourceRelationships().add(r)
     
      return;
    }
   
    part = getRawPart(partByteArrays, ctm, resolvedPartUri, r); // will throw exception if null

    // The source Part (or Package) might have a convenience
    // method for this
    if (source.setPartShortcut(part, relationshipType ) ) {
      log.debug("Convenience method established from " + source.getPartName()
          + " to " + part.getPartName());
    }

   
    if (part instanceof BinaryPart
        || part instanceof DefaultXmlPart) {
      // The constructors of other parts should take care of this...
      part.setRelationshipType(relationshipType);
    }
    rp.loadPart(part, r);
    pkg.handled.put(resolvedPartUri, resolvedPartUri);

   
View Full Code Here


   */
  public static Part getRawPart(HashMap<String, ByteArray> partByteArrays,
      ContentTypeManager ctm, String resolvedPartUri, Relationship rel
      throws Docx4JException {
   
    Part part = null;
   
    InputStream is = null;
    try {
      try {
        log.debug("resolved uri: " + resolvedPartUri);
        is = getInputStreamFromZippedPart( partByteArrays,  resolvedPartUri);
       
        // Get a subclass of Part appropriate for this content type 
        // This will throw UnrecognisedPartException in the absence of
        // specific knowledge. Hence it is important to get the is
        // first, as we do above.
        part = ctm.getPart("/" + resolvedPartUri, rel);       

        log.info("ctm returned " + part.getClass().getName() );
       
        if (part instanceof org.docx4j.openpackaging.parts.ThemePart) {

          ((org.docx4j.openpackaging.parts.JaxbXmlPart)part).setJAXBContext(Context.jcThemePart);
          ((org.docx4j.openpackaging.parts.JaxbXmlPart)part).unmarshal( is );
         
        } else if (part instanceof org.docx4j.openpackaging.parts.DocPropsCorePart ) {

            ((org.docx4j.openpackaging.parts.JaxbXmlPart)part).setJAXBContext(Context.jcDocPropsCore);
            ((org.docx4j.openpackaging.parts.JaxbXmlPart)part).unmarshal( is );
           
        } else if (part instanceof org.docx4j.openpackaging.parts.DocPropsCustomPart ) {

            ((org.docx4j.openpackaging.parts.JaxbXmlPart)part).setJAXBContext(Context.jcDocPropsCustom);
            ((org.docx4j.openpackaging.parts.JaxbXmlPart)part).unmarshal( is );
           
        } else if (part instanceof org.docx4j.openpackaging.parts.DocPropsExtendedPart ) {

            ((org.docx4j.openpackaging.parts.JaxbXmlPart)part).setJAXBContext(Context.jcDocPropsExtended);
            ((org.docx4j.openpackaging.parts.JaxbXmlPart)part).unmarshal( is );
         
        } else if (part instanceof org.docx4j.openpackaging.parts.CustomXmlDataStoragePropertiesPart ) {

          ((org.docx4j.openpackaging.parts.JaxbXmlPart)part).setJAXBContext(Context.jcCustomXmlProperties);
          ((org.docx4j.openpackaging.parts.JaxbXmlPart)part).unmarshal( is );

        } else if (part instanceof org.docx4j.openpackaging.parts.digitalsignature.XmlSignaturePart ) {

          ((org.docx4j.openpackaging.parts.JaxbXmlPart)part).setJAXBContext(Context.jcXmlDSig);
          ((org.docx4j.openpackaging.parts.JaxbXmlPart)part).unmarshal( is );
         
        } else if (part instanceof org.docx4j.openpackaging.parts.JaxbXmlPart) {

          // MainDocument part, Styles part, Font part etc
         
          //((org.docx4j.openpackaging.parts.JaxbXmlPart)part).setJAXBContext(Context.jc);
          ((org.docx4j.openpackaging.parts.JaxbXmlPart)part).unmarshal( is );
         
        } else if (part instanceof org.docx4j.openpackaging.parts.WordprocessingML.BinaryPart) {
         
          log.debug("Detected BinaryPart " + part.getClass().getName() );
          ((BinaryPart)part).setBinaryData(is);

        } else if (part instanceof org.docx4j.openpackaging.parts.CustomXmlDataStoragePart ) {
         
          // Is it a part we know?
          try {
            Unmarshaller u = Context.jc.createUnmarshaller();
            Object o = u.unmarshal( is );           
            log.debug(o.getClass().getName());
           
            PartName name = part.getPartName();
           
            if (o instanceof CoverPageProperties) {
             
              part = new DocPropsCoverPagePart(name);             
              ((DocPropsCoverPagePart)part).setJaxbElement(
View Full Code Here

  //public static Part getBinaryPart(ZipFile zf, ContentTypeManager ctm, String resolvedPartUri)
  public static Part getBinaryPart(HashMap<String, ByteArray> partByteArrays,
      ContentTypeManager ctm, String resolvedPartUri
      throws Docx4JException {

    Part part = null;
    InputStream in = null;         
    try {     
      //in = zf.getInputStream( zf.getEntry(resolvedPartUri ) );
      in = partByteArrays.get(resolvedPartUri).getInputStream();
      part = new BinaryPart( new PartName("/" + resolvedPartUri));
     
      // Set content type
      part.setContentType(
          new ContentType(
              ctm.getContentType(new PartName("/" + resolvedPartUri)) ) );
     
      ((BinaryPart)part).setBinaryData(in);
      log.info("Stored as BinaryData" );
View Full Code Here

            System.out.println("creating " + f.getParentFile().getAbsolutePath() );
            f.getParentFile().mkdirs();
            //f = new File(BASE_DIR + "/" + target);
          }         
         
          Part p = relsPart.getPart(r);
          FileOutputStream fos = new FileOutputStream( f );
          ((BinaryPart)p).writeDataToOutputStream(fos);
          fos.close();
         
        }
View Full Code Here

      return null;
  }

  protected void appendPartContent(CC conversionContext, Document document,
      Part part, List<Object> content, Element currentParent) throws Docx4JException {
  Part previousPart = conversionContext.getCurrentPart();
    conversionContext.setCurrentPart(part);
      generateBodyContent(conversionContext, document, content, currentParent);
      conversionContext.setCurrentPart(previousPart);
 
View Full Code Here

    }

    private void traverse(Part parent, RelationshipsPart rp) {
        int chartNum = 0;
        for (Relationship r : rp.getRelationships().getRelationship()) {
            Part part = rp.getPart(r);
            if (handled.contains(part)) {
                continue;
            }

            if (part instanceof JaxbXmlPart) {
                Object o = ((JaxbXmlPart) part).getJaxbElement();

                if (o instanceof CTChartSpace) {
                    Drawing drawing = (Drawing) parent;
                    CTDrawing ctDrawing = drawing.getJaxbElement();
                    Object anchorObj = ctDrawing.getEGAnchor().get(chartNum++);

                    Range range = null;
                    CTTwoCellAnchor ctTwoCellAnchor = null;
                    if (anchorObj instanceof CTTwoCellAnchor) {
                        ctTwoCellAnchor = (CTTwoCellAnchor) anchorObj;
                        CTMarker from = ctTwoCellAnchor.getFrom();
                        CTMarker to = ctTwoCellAnchor.getTo();
                        String sheetName = worksheets.get(worksheets.size() - 1).name;
                        range = new Range(sheetName, from.getCol() + 1, from.getRow() + 1, to.getCol() + 1, to.getRow() + 1);
                    }

                    chartSpaces.put(range, new ChartWrapper((CTChartSpace) o, drawing, ctTwoCellAnchor));
                }

                if (o instanceof Workbook) {
                    workbook = (Workbook) o;
                }
            }

            if (part instanceof WorksheetPart) {
                for (Relationship relationship : part.getSourceRelationships()) {
                    if (relationship.getType().endsWith("worksheet")) {
                        String sheetId = relationship.getId();
                        for (Sheet sheet : workbook.getSheets().getSheet()) {
                            if (sheet.getId().equals(sheetId)) {
                                worksheets.add(new SheetWrapper((WorksheetPart) part, sheet.getName()));
                            }
                        }

                    }
                }
            } else if (part instanceof SharedStrings) {
                sharedStrings = (SharedStrings) part;
            }

            handled.add(part);

            if (part.getRelationshipsPart() != null) {
                traverse(part, part.getRelationshipsPart());
            }
        }
    }
View Full Code Here

                sb.append("\n" + indent + "external resource " + r.getTarget() + " of type " + r.getType());
                continue;
            }

            Part part = rp.getPart(r);

            appendInfo(part, sb, indent);
            if (handled.get(part) != null) {
                sb.append(" [additional reference] ");
                continue;
            }
            handled.put(part, part);
            if (part.getRelationshipsPart(false) == null) {
                // sb.append(".. no rels" );
            } else {
                traverseRelationships(opcPackage, part.getRelationshipsPart(false), sb, indent + "    ");
            }
        }
    }
View Full Code Here

                sb.append("\n" + indent + "external resource " + r.getTarget() + " of type " + r.getType());
                continue;
            }

            Part part = rp.getPart(r);

            appendInfo(part, sb, indent);
            if (handled.get(part) != null) {
                sb.append(" [additional reference] ");
                continue;
            }
            handled.put(part, part);
            if (part.getRelationshipsPart(false) == null) {
                // sb.append(".. no rels" );
            } else {
                traverseRelationships(opcPackage, part.getRelationshipsPart(false), sb, indent + "    ");
            }
        }
    }
View Full Code Here

TOP

Related Classes of org.docx4j.openpackaging.parts.Part

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.