List of usage examples for org.apache.poi.openxml4j.opc PackagePartName getName
public String getName()
From source file:org.openflexo.docxparser.OpenXml2Html.java
License:Open Source License
private ParsedHtml getHtmlFromW_DrawingElement(Element element) { if (OpenXmlTag.getOpenXmlTag(element) != OpenXmlTag.w_drawing) { throw new InvalidElementException( "Cannot transform element to html, expecting element w:drawing and get '" + element.getQualifiedName() + "'"); }/*from w ww. ja v a 2s . c om*/ ParsedHtml parsedHtml = new ParsedHtml(); try { Dom4jXPath xpath = new Dom4jXPath("descendant::a:blip"); xpath.addNamespace(DocxXmlUtil.NAMESPACE_DRAWINGMAIN.getPrefix(), DocxXmlUtil.NAMESPACE_DRAWINGMAIN.getURI()); Element ablipElement = (Element) xpath.selectSingleNode(element); if (ablipElement == null) { logger.warning("Cannot handle drawing tag: a:blip element not found"); return parsedHtml; } String imageRid = ablipElement.attributeValue(DocxQName.getQName(OpenXmlTag.r_embed)); if (imageRid == null) { logger.warning("Cannot handle drawing tag: r:embed attribute in a:blip element not found"); return parsedHtml; } PackageRelationship imageRelationship = documentPart.getRelationship(imageRid); if (imageRelationship == null) { logger.warning("Cannot handle drawing tag: imageRelationship with id '" + imageRid + "' not found"); return parsedHtml; } PackagePartName imagePartName = PackagingURIHelper.createPartName(imageRelationship.getTargetURI()); PackagePart imagePart = documentPart.getPackage().getPart(imagePartName); String imageFileName; if (imagePart != null) { byte[] imageBytes = DocxXmlUtil.getByteArrayFromInputStream(imagePart.getInputStream()); imageFileName = imagePartName.getName().substring(imagePartName.getName().lastIndexOf('/') + 1); parsedHtml.addNeededResource(new ParsedHtmlResource(imageFileName, imageBytes)); } else { imageFileName = ""; } Integer imageWidth = null; Integer imageHeight = null; Element extentElement = (Element) element.selectSingleNode("wp:inline/wp:extent"); if (extentElement != null) { String imageCx = extentElement.attributeValue("cx"); String imageCy = extentElement.attributeValue("cy"); if (imageCx != null) { imageWidth = getEnglishMetricUnitInPixel(imageCx); } if (imageCy != null) { imageHeight = getEnglishMetricUnitInPixel(imageCy); } } parsedHtml.appendHtml("<img src=\"" + resourcesDirectory + imageFileName + "\""); if (imageWidth != null) { parsedHtml.appendHtml(" width=\"" + imageWidth + "\""); } if (imageHeight != null) { parsedHtml.appendHtml(" height=\"" + imageHeight + "\""); } parsedHtml.appendHtml(" />"); return parsedHtml; } catch (InvalidFormatException e) { logger.log(Level.WARNING, "Cannot handle drawing tag: InvalidFormatException catched", e); return new ParsedHtml(); } catch (IOException e) { logger.log(Level.WARNING, "Cannot handle drawing tag: IOException catched", e); return new ParsedHtml(); } catch (JaxenException e) { logger.log(Level.WARNING, "Cannot handle drawing tag: JaxenException catched", e); return new ParsedHtml(); } }