public override POIXMLDocumentPart CreateDocumentPart(POIXMLDocumentPart parent, PackageRelationship rel, PackagePart part) { POIXMLRelation descriptor = XWPFRelation.GetInstance(rel.RelationshipType); if (descriptor == null || descriptor.RelationClass == null) { logger.Log(POILogger.DEBUG, "using default POIXMLDocumentPart for " + rel.RelationshipType); return new POIXMLDocumentPart(part, rel); } try { Type cls = descriptor.RelationClass; try { ConstructorInfo constructor = cls.GetConstructor(new Type[] { typeof(POIXMLDocumentPart), typeof(PackagePart), typeof(PackageRelationship) }); return constructor.Invoke(new object[] { parent, part, rel }) as POIXMLDocumentPart; } catch (Exception) { ConstructorInfo constructor = cls.GetConstructor(new Type[] { typeof(PackagePart), typeof(PackageRelationship) }); return constructor.Invoke(new object[] { part, rel }) as POIXMLDocumentPart; } } catch (Exception e) { throw new POIXMLException(e); } }
public XWPFPictureData GetPictureDataByID(string blipID) { POIXMLDocumentPart relationById = this.GetRelationById(blipID); if (relationById is XWPFPictureData) { return((XWPFPictureData)relationById); } return((XWPFPictureData)null); }
/** * returns the PictureData by blipID * @param blipID * @return XWPFPictureData of a specificID * @throws Exception */ public XWPFPictureData GetPictureDataByID(string blipID) { POIXMLDocumentPart relatedPart = GetRelationById(blipID); if (relatedPart != null && relatedPart is XWPFPictureData) { return((XWPFPictureData)relatedPart); } return(null); }
public XWPFHeaderFooter(POIXMLDocumentPart parent, PackagePart part, PackageRelationship rel) : base(parent, part, rel) { ; this.document = (XWPFDocument)GetParent(); if (this.document == null) { throw new NullReferenceException(); } }
public void Bug59058() { String[] files = { "bug57031.docx", "bug59058.docx" }; foreach (String f in files) { ZipFile zf = new ZipFile(POIDataSamples.GetDocumentInstance().GetFile(f)); ZipEntry entry = zf.GetEntry("word/document.xml"); XmlDocument xml = POIXMLDocumentPart.ConvertStreamToXml(zf.GetInputStream(entry)); DocumentDocument document = DocumentDocument.Parse(xml, POIXMLDocumentPart.NamespaceManager); Assert.IsNotNull(document); zf.Close(); } }
private int GetRelationIndex(XWPFRelation relation) { List <POIXMLDocumentPart> relations = doc.GetRelations(); int i = 1; for (IEnumerator <POIXMLDocumentPart> it = relations.GetEnumerator(); it.MoveNext();) { POIXMLDocumentPart item = it.Current; if (item.GetPackageRelationship().RelationshipType.Equals(relation.Relation)) { i++; } } return(i); }
/** * Get the PictureData of the Picture, if present. * Note - not all kinds of picture have data */ public XWPFPictureData GetPictureData() { String blipId = ctPic.blipFill.blip.embed; POIXMLDocumentPart part = run.GetParagraph().GetPart(); if (part != null) { POIXMLDocumentPart relatedPart = part.GetRelationById(blipId); if (relatedPart is XWPFPictureData) { return((XWPFPictureData)relatedPart); } } return(null); }
public void TestCommitNullPart() { POIXMLDocumentPart part = new POIXMLDocumentPart(); part.PrepareForCommit(); part.Commit(); part.OnSave(new List <PackagePart>()); Assert.IsNull(part.GetRelationById(null)); Assert.IsNull(part.GetRelationId(null)); Assert.IsFalse(part.RemoveRelation(null, true)); part.RemoveRelation(null); Assert.AreEqual(string.Empty, part.ToString()); part.OnDocumentCreate(); //part.GetTargetPart(null); }
/** * Recursively Traverse a OOXML document and assert that same logical parts have the same physical instances */ private void Traverse(POIXMLDocumentPart part, Dictionary <String, POIXMLDocumentPart> context) { context[part.GetPackageRelationship().TargetUri.ToString()] = part; foreach (POIXMLDocumentPart p in part.GetRelations()) { String uri = p.GetPackageRelationship().TargetUri.ToString(); if (!context.ContainsKey(uri)) { Traverse(p, context); } else { POIXMLDocumentPart prev = context[uri]; Assert.AreSame(prev, p, "Duplicate POIXMLDocumentPart instance for targetURI=" + uri); } } }
public void TestPictureHandlingComplex() { XWPFDocument doc = XWPFTestDataSamples.OpenSampleDocument("issue_51265_3.docx"); XWPFHeader xwpfHeader = doc.HeaderList[(0)]; Assert.AreEqual(3, doc.AllPictures.Count); Assert.AreEqual(3, xwpfHeader.AllPictures.Count); Assert.AreEqual(5, doc.AllPackagePictures.Count); byte[] nature1 = XWPFTestDataSamples.GetImage("nature1.jpg"); String id = doc.AddPictureData(nature1, (int)PictureType.JPEG); POIXMLDocumentPart part1 = xwpfHeader.GetRelationById("rId1"); XWPFPictureData part2 = (XWPFPictureData)doc.GetRelationById(id); Assert.AreSame(part1, part2); doc.Package.Revert(); }
public XWPFPictureData GetPictureData() { CT_BlipFillProperties blipFill = this.ctPic.blipFill; if (blipFill == null || !blipFill.IsSetBlip()) { return((XWPFPictureData)null); } string embed = blipFill.blip.embed; POIXMLDocumentPart part = this.run.GetParagraph().GetPart(); if (part != null) { POIXMLDocumentPart relationById = part.GetRelationById(embed); if (relationById is XWPFPictureData) { return((XWPFPictureData)relationById); } } return((XWPFPictureData)null); }
public override POIXMLDocumentPart CreateDocumentPart(POIXMLDocumentPart parent, PackageRelationship rel, PackagePart part) { POIXMLRelation descriptor = XSSFRelation.GetInstance(rel.RelationshipType); if (descriptor == null || descriptor.RelationClass == null) { logger.Log(POILogger.DEBUG, "using default POIXMLDocumentPart for " + rel.RelationshipType); return(new POIXMLDocumentPart(part, rel)); } try { Type cls = descriptor.RelationClass; ConstructorInfo constructor = cls.GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance, null, new Type[] { typeof(PackagePart), typeof(PackageRelationship) }, null); return((POIXMLDocumentPart)constructor.Invoke(new object[] { part, rel })); } catch (Exception e) { throw new POIXMLException(e); } }
/** * Recursively Traverse a OOXML document and assert that same logical parts have the same physical instances */ private void Traverse(POIXMLDocumentPart part, Dictionary <String, POIXMLDocumentPart> context) { Assert.AreEqual(part.GetPackageRelationship().TargetUri.ToString(), part.GetPackagePart().PartName.Name); context[part.GetPackagePart().PartName.Name] = part; foreach (POIXMLDocumentPart p in part.GetRelations()) { Assert.IsNotNull(p.ToString()); String uri = p.GetPackagePart().PartName.URI.ToString(); Assert.AreEqual(uri, p.GetPackageRelationship().TargetUri.ToString()); if (!context.ContainsKey(uri)) { Traverse(p, context); } else { POIXMLDocumentPart prev = context[uri]; Assert.AreSame(prev, p, "Duplicate POIXMLDocumentPart instance for targetURI=" + uri); } } }
public override POIXMLDocumentPart CreateDocumentPart(POIXMLDocumentPart parent, PackageRelationship rel, PackagePart part) { POIXMLRelation instance = (POIXMLRelation)XWPFRelation.GetInstance(rel.RelationshipType); if (instance != null) { if (instance.RelationClass != null) { try { Type relationClass = instance.RelationClass; try { return(relationClass.GetConstructor(new Type[3] { typeof(POIXMLDocumentPart), typeof(PackagePart), typeof(PackageRelationship) }).Invoke(new object[3] { (object)parent, (object)part, (object)rel }) as POIXMLDocumentPart); } catch (Exception ex) { return(relationClass.GetConstructor(new Type[2] { typeof(PackagePart), typeof(PackageRelationship) }).Invoke(new object[2] { (object)part, (object)rel }) as POIXMLDocumentPart); } } catch (Exception ex) { throw new POIXMLException(ex); } } } XWPFFactory.logger.Log(1, (object)("using default POIXMLDocumentPart for " + rel.RelationshipType)); return(new POIXMLDocumentPart(part, rel)); }
/** * Figures out the policy for the given document, * and Creates any header and footer objects * as required. */ public XWPFHeaderFooterPolicy(XWPFDocument doc, CT_SectPr sectPr) { // Grab what headers and footers have been defined // For now, we don't care about different ranges, as it // doesn't seem that .docx properly supports that // feature of the file format yet this.doc = doc; for (int i = 0; i < sectPr.SizeOfHeaderReferenceArray(); i++) { // Get the header CT_HdrFtrRef ref1 = sectPr.GetHeaderReferenceArray(i); POIXMLDocumentPart relatedPart = doc.GetRelationById(ref1.id); XWPFHeader hdr = null; if (relatedPart != null && relatedPart is XWPFHeader) { hdr = (XWPFHeader)relatedPart; } // Assign it ST_HdrFtr type = ref1.type; assignHeader(hdr, type); } for (int i = 0; i < sectPr.SizeOfFooterReferenceArray(); i++) { // Get the footer CT_HdrFtrRef ref1 = sectPr.GetFooterReferenceArray(i); POIXMLDocumentPart relatedPart = doc.GetRelationById(ref1.id); XWPFFooter ftr = null; if (relatedPart != null && relatedPart is XWPFFooter) { ftr = (XWPFFooter)relatedPart; } // Assign it ST_HdrFtr type = ref1.type; assignFooter(ftr, type); } }
public XWPFHeader(POIXMLDocumentPart parent, PackagePart part, PackageRelationship rel) : base(parent, part, rel) { }
public XWPFHeader(POIXMLDocumentPart parent, PackagePart part, PackageRelationship rel) : base(parent, part, rel) { ; }
public override POIXMLDocumentPart CreateDocumentPart(POIXMLDocumentPart parent, PackageRelationship rel, PackagePart part) { return(new POIXMLDocumentPart(part, rel)); }
public XWPFFooter(POIXMLDocumentPart parent, PackagePart part) : base(parent, part) { }
public XWPFFooter(POIXMLDocumentPart parent, PackagePart part, PackageRelationship rel) : this(parent, part) { }