/** * @return * @throws InvalidFormatException * @since 3.2.0, at which time related constructor was made private */ public static RelationshipsPart createPackageRels() throws InvalidFormatException { RelationshipsPart rp = new RelationshipsPart(new PartName("/_rels/.rels")); return rp; } private RelationshipsPart(PartName partname) throws InvalidFormatException {
@Override public String toString() { return getName(); }
/** * @param opcPackage * @param sourcePart * @param proposedRelId * @param ext extension eg png * @return */ public static String createImageName(OpcPackage opcPackage, Base sourcePart, String proposedRelId, String ext) { if (opcPackage instanceof WordprocessingMLPackage) { return PartName.generateUniqueName(sourcePart, proposedRelId, IMAGE_DIR_PREFIX, IMAGE_NAME_PREFIX, ext); } else if (opcPackage instanceof PresentationMLPackage) { return PartName.generateUniqueName(sourcePart, proposedRelId, "/ppt/media/", IMAGE_NAME_PREFIX, ext); } else if (opcPackage instanceof SpreadsheetMLPackage) { return PartName.generateUniqueName(sourcePart, proposedRelId, "/xl/media/", IMAGE_NAME_PREFIX, ext); } else { // Shouldn't happen return PartName.generateUniqueName(sourcePart, proposedRelId, IMAGE_DIR_PREFIX, IMAGE_NAME_PREFIX, ext); } }
/** * @param partName * @param contentType * @since 6.1.0 */ public void addOverrideContentType(PartName partName, String contentType) { CTOverride defaultCT = ctFactory.createCTOverride(); defaultCT.setPartName(partName.getName()); defaultCT.setContentType(contentType); overrideContentType.put(partName.getURI(), defaultCT); }
@Override public PartName getPartName() { // Calculate rels part name dynamically where possible; // this ensures it is named appropriately // if its source part's name changes // (eg AddPartBehaviour.RENAME_IF_NAME_EXISTS) if (this.getSourceP()!=null && (!(this.getSourceP() instanceof OpcPackage))) { try { return new PartName(PartName.getRelationshipsPartName( sourceP.getPartName().getName() )); } catch (InvalidFormatException e) { throw new RuntimeException(e); } } else { return super.getPartName(); } }
removedParts.addAll( parentPart.getRelationshipsPart().removePart( new PartName(xmlpart.getName())) ); if (a.getSourcePartName().equals("/")) { newRP = otherPackage.getRelationshipsPart(true); new PartName(a.getPart().getName())); log.error("Couldn't find " + a.getPart().getName() + " @ " + a.getSourcePartName().getName() ); continue; if (a.getSourcePartName().equals("/")) { newRP = otherPackage.getRelationshipsPart(true); parentPart.getRelationshipsPart().getRel(new PartName(a.getPart().getName()))); otherPackage.getParts().put(newPart); newPart.setPackage( otherPackage );
String relPart = PartName.getRelationshipsPartName( part.getPartName().getName().substring(1) );
/** * Constructor. Creates an appropriately named .rels XML document. * * Often invoked via sourceP.getRelationshipsPart(true) // create rels part * * @param sourceP * Source part for these relationships * * @throws InvalidFormatException * If the specified URI is not valid. */ public RelationshipsPart(Base sourceP) throws InvalidFormatException { super(new PartName(PartName.getRelationshipsPartName( sourceP.getPartName().getName() )) ); // though we won't be using that, since it is dynamic this.sourceP = sourceP; init(); sourceP.setRelationships(this); // TODO - use setRelationships from here // like this in other constructors // in this class. org.docx4j.relationships.ObjectFactory factory = new org.docx4j.relationships.ObjectFactory(); jaxbElement = factory.createRelationships(); }
removedParts.addAll( parentPart.getRelationshipsPart().removePart( new PartName(xmlpart.getName())) ); if (a.getSourcePartName().equals("/")) { newRP = otherPackage.getRelationshipsPart(true); new PartName(a.getPart().getName())); log.error("Couldn't find " + a.getPart().getName() + " @ " + a.getSourcePartName().getName() ); continue; if (a.getSourcePartName().equals("/")) { newRP = otherPackage.getRelationshipsPart(true); parentPart.getRelationshipsPart().getRel(new PartName(a.getPart().getName()))); otherPackage.getParts().put(newPart); newPart.setPackage( otherPackage );
/** * Get the Relationships Part (if there is one) for a given Part. * Otherwise return null. * * @param zf * @param part * @return * @throws InvalidFormatException */ public RelationshipsPart getRelationshipsPart(Part part) throws Docx4JException, InvalidFormatException { // recurse via this parts relationships, if it has any String relPart = PartName.getRelationshipsPartName( part.getPartName().getName() ); RelationshipsPart rrp = getRelationshipsPartFromXmlPackage(part, relPart); if (rrp!=null) { part.setRelationships(rrp); } else { log.debug("No relationships " + relPart ); return null; } return rrp; }
.resolvePartUri(new URI(inferSourcePartName(this.getPartName().getName())), new URI( rel.getTarget())); } else { resolvedTargetURI = org.docx4j.openpackaging.URIHelper .resolvePartUri(sourceP.getPartName().getURI(), new URI( rel.getTarget())); return partName.getName().equals(resolvedTargetURI.toString()) ;
public Part CreateDefaultXmlPartObject(String partName) throws InvalidFormatException { return new DefaultXmlPart(new PartName(partName)); }
public static String generateUniqueName(Base sourcePart, String proposedRelId, String directoryPrefix, String after_, String ext) { // In order to ensure unique part name, // idea is to use the relId, which ought to be unique // Also need partName, since images for different parts are stored in a common dir String sourcepartName = sourcePart.getPartName().getName(); int beginIndex = sourcepartName.lastIndexOf("/")+1; int endIndex = sourcepartName.lastIndexOf("."); String partPrefix = sourcepartName.substring(beginIndex, endIndex); return directoryPrefix + partPrefix + "_" + after_ + "_" + proposedRelId + "." + ext; }
String relPart = PartName.getRelationshipsPartName( part.getPartName().getName().substring(1) );
/** * This method assumes your package is a docx (not a pptx or xlsx). * * @param sourcePart * @param proposedRelId * @param ext * @return */ @Deprecated public static String createImageName(Base sourcePart, String proposedRelId, String ext) { return PartName.generateUniqueName(sourcePart, proposedRelId, IMAGE_DIR_PREFIX, IMAGE_NAME_PREFIX, ext); }
public Part CreateMainDocumentPartObject(String partName) throws InvalidFormatException { return new MainDocumentPart(new PartName(partName)); }
public void setContentType(ContentType contentType) { log.debug("\nSet contentType " + contentType + " on part " + this.getPartName().getName() +"\n\n"); this.contentType = contentType; }