Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.docx4j.model.images;
  
  
  import org.slf4j.Logger;
Generate HTML/XSLFO
 
 public abstract class AbstractWordXmlPicture {
 	
 	protected static Logger log = LoggerFactory.getLogger(AbstractWordXmlPicture.class);
 	
     protected Dimensions dimensions;
     
     // TODO: partially implemented
     private BinaryPart metaFile;
 	
 	protected final static String IMAGE_URL = "http://docxwave.appspot.com/image?";
 	
     public static DocumentFragment getHtmlDocumentFragment(AbstractWordXmlPicture picture) {
     	
     	DocumentFragment docfrag=null;
     	Document d=null;
     	try {
         	if (picture==null) {
     			.warn("picture was null!");
             	DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();        
     			 try {
     				d = factory.newDocumentBuilder().newDocument();
     			} catch (ParserConfigurationException e1) {
     				// TODO Auto-generated catch block
     				e1.printStackTrace();
     			}
     			Element span = d.createElement("span");
     			span.setAttribute("style""color:red;");
     			d.appendChild(span);
     			
     			Text err = d.createTextNode"[null img]" );
     			span.appendChild(err);
     		
         	} else if (picture.metaFile==null) {
 				// Usual case    	
 			    d = picture.createHtmlImageElement();
 			} else if (picture.metaFile instanceof MetafileWmfPart) {
 				
 				SvgDocument svgdoc = ((MetafileWmfPart)picture.metaFile).toSVG();
 				d = svgdoc.getDomDocument();
 				
 			} 
 			else if (picture.metaFile instanceof MetafileEmfPart) {
 				
 	        	DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();        
 				 d = factory.newDocumentBuilder().newDocument();
 				
 				//log.info("Document: " + document.getClass().getName() );
 
 				Node span = d.createElement("span");			
 				d.appendChild(span);
 				
 				Text err = d.createTextNode"[TODO emf image]" );
 				span.appendChild(err);
 				
 			}
 		} catch (Exception e) {
 			.error(e.getMessage(), e);
         	DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();        
 			 try {
 				d = factory.newDocumentBuilder().newDocument();
 			} catch (ParserConfigurationException e1) {
 				// TODO Auto-generated catch block
 			}
 			Element span = d.createElement("span");
 			span.setAttribute("style""color:red;");
 			d.appendChild(span);
 			
 			Text err = d.createTextNodee.getMessage() );
 			span.appendChild(err);
 		}
 		docfrag = d.createDocumentFragment();
 		return docfrag;
    }
    {
        try {
            // Create a DOM builder and parse the fragment
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            
            Document document = factory.newDocumentBuilder().newDocument();
            
            
            Element imageElement  = document.createElement("img");
            if ( !=null && !.equals(""))
            {
            	imageElement.setAttribute("src");
            }
            if ( !=null && !.equals("") )
            {
            	imageElement.setAttribute("id");
            }
            if ( !=null && !.equals("") )
            {
            	imageElement.setAttribute("alt");
            }
            if ( !=null && !.equals("") )
            {
            	imageElement.setAttribute("style");
            }
            if (.>0)
            {
            	imageElement.setAttribute("width",  Integer.toString(.));
            }
            if (.>0)
            {
            	imageElement.setAttribute("height", Integer.toString(.));
            }
            if ( !=null && !.equals(""))
            {
            	Element linkElement = document.createElement("a");
                linkElement.setAttribute"href");
                if ( !=null && !.equals(""))
                {
                	linkElement.setAttribute"target");
                }
                if ( !=null && !.equals(""))
                {
                	linkElement.setAttribute"title");
                }
                linkElement.appendChild(imageElement);
                imageElement = linkElement;
            }
            
            document.appendChild(imageElement);
            
            return document;
            
        } catch (Exception e) {
        	e.printStackTrace();
        	.error(e.getMessage(), e);
            return null;
        }
        
    }
    {
        try {
            // Create a DOM builder and parse the fragment
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            
            Document document = factory.newDocumentBuilder().newDocument();
                        
            Element imageElement  = document.createElementNS("http://www.w3.org/1999/XSL/Format"
			"fo:external-graphic"); 	
            if ( !=null && !.equals(""))
            {
            	imageElement.setAttribute("src");
            } else {
            	.error("@src missing!");
            }
//            if (id !=null && !id.equals("") )
//            {
//                setAttribute("id", id);
//            }
//
//            if (alt !=null && !alt.equals("") )
//            {
//                setAttribute("alt", alt);
//            }
//
//            if (style !=null && !style.equals("") )
//            {
//                setAttribute("style", style);
//            }
//
            if (.>0)
            {
            	imageElement.setAttribute("content-width",  Integer.toString(.)+.);
            }
            if (.>0)
            {
            	imageElement.setAttribute("content-height", Integer.toString(.)+.);
            }
//
//            if (hlinkRef !=null && !hlinkRef.equals(""))
//            {
//                linkElement = document.createElement("a");
//
//                setAttribute(linkElement, "href", hlinkRef);
//
//                if (targetFrame !=null && !targetFrame.equals(""))
//                {
//                    setAttribute(linkElement, "target", targetFrame);
//                }
//
//                if (tooltip !=null && !tooltip.equals(""))
//                {
//                    setAttribute(linkElement, "title", tooltip);
//                }
//
//                linkElement.appendChild(imageElement);
//
//                imageElement = linkElement;
//            }
            
            document.appendChild(imageElement);
            
            return document;
            
        } catch (Exception e) {
        	.error(e.getMessage(), e);
            return null;
        }
        
    }
	protected void handleImageRel(ConversionImageHandler imageHandlerString imgRelIdPart sourcePart) {
	Relationship rel = sourcePart.getRelationshipsPart().getRelationshipByID(imgRelId);
	Part part = null;
	String uri = null;
	boolean ignoreImage = false;
		setID(imgRelId);            	
		part = sourcePart.getRelationshipsPart().getPart(rel);
		/* a part == null is ok if it is an external image, 
		 * and hasn't been loaded (loadExternalTargets == false)
		 * but the relationship can be external, 
		 * but the part avaiable (loadExternalTargets == true)
		 */
		if ((part != null) && (!(part instanceof BinaryPart))) {
			.error("Invalid part type id: " + imgRelId + ", class = " + part.getClass().getName());
			ignoreImage = true;
		}
		if (!ignoreImage) {
			uri = handlePart(imageHandlerthisrel, (BinaryPart)part);
			if (uri != null) {
				this.setSrc(uri);
			}
		}
	}

Parameters:
imageHandler
picture
relationship
part
Returns:
uri for the image we've saved, or null
	protected String handlePart(ConversionImageHandler imageHandlerAbstractWordXmlPicture pictureRelationship relationshipBinaryPart binaryPart) {
	String uri = null;
		try {
			uri = imageHandler.handleImage(picturerelationshipbinaryPart);
		}
		catch (Docx4JException de) {
			if (relationship != null) {
				.error("Exception handling image id: " + relationship.getId() + ", target '" + relationship.getTarget() + "': " + de.toString(), de);
			}
			else {
				.error("Exception handling image: " + de.toString(), de);
			}
		}
		return uri;
	}
//	void setAttribute(Node imageElement, String name, String value) {
//		
//		setAttribute( document, imageElement, name, value );
//		
//	}
//	void setAttribute(Document document, Element element, String name, String value) {
//		
//		
//    	org.w3c.dom.Attr tmpAtt = document.createAttribute(name);
//    	tmpAtt.setValue(value);
//    	element.getAttributes().setNamedItem(tmpAtt);
//    	
//    	log.debug("<" + element.getLocalName() + " @"+ name + "=\"" + value);
//		
//	}
	

    
    
    
    
Values as parsed from E10 CSS.
    public class Dimensions {
    	
    	public int height;
    	public String heightUnit;
    	
    	public int width;
    	public String widthUnit;
    	
    //  /**
    //  * If the docx does not explicitly size the
    //  * image, check that it will fit on the page 
    //  */
    // private void ensureFitsPage(ImageInfo imageInfo, PageDimensions page) {
    //
    // 	
//     	CxCy cxcy = BinaryPartAbstractImage.CxCy.scale(imageInfo, page);    
    // 	
//     	if (cxcy.isScaled() ) {
//     		log.info("Scaled to fit page width");
//     		this.setWidth( Math.round(cxcy.getCx()/extentToPixelConversionFactor) );
//     		this.setHeight( Math.round(cxcy.getCy()/extentToPixelConversionFactor) );    
//     		// That gives pixels, which is ok for HTML, but for XSL FO, we want pt or mm etc
//     	}
    // 	
    // }
    	
    }
    
    
    
	// Hyperlink stuff - Only in E20?
	protected String hlinkRef;
		return this.;
	}
	public void setHlinkReference(String value) {
		this. = value;
	}
	protected String targetFrame;
	public String getTargetFrame() {
		return this.;
	}
	public void setTargetFrame(String value) {
		this. = value;
	}
    protected String tooltip;
    public String getTooltip() {
		return this.;
	}
	public void setTooltip(String value) {
		this. = value;
	}
	// Alt - only in E10?
    protected String alt;
    // / The attribute of the v:shape node which maps to the
    // / 'alt' attribute of and HTML 'img' tag.
    public String getAlt() {
		return this.;
	}
	public void setAlt(String value) {
		this. = value;
	}
//    private byte[] data;
//    // / <summary>
//    // / The decoded data from the corresponding 'w:bindata'
//    /// node of the Word Document.
//    /// </summary>
//    /// <remarks>
//    /// This property is set by the conversion process.
//    /// </remarks>
//    /// <value>
//    /// </value>
//    /// <id guid="130108bf-d980-4753-b674-4d489acf485c" />
//    /// <owner alias="ROrleth" />
//    public byte[] getData() {
//		return this.data;
//	}
//
//	public void setData(byte[] value) {
//		this.data = value;
//	}
	protected String id;
	// / The identifier of the picture unique only within the scope of
	// / the Word Document.
	public String getID() {
		return this.;
	}
	public void setID(String value) {
		this. = value;
	}
    private String src;
    public String getSrc() {
		return this.;
	}
	public void setSrc(String value) {
		this. = value;
	}
    protected String style;
    // / The attribute of the v:shape node which maps to the
    /// 'style' attribute of and HTML 'img' tag.
    public String getStyle() {
		return this.;
	}
	public void setStyle(String value) {
		this. = value;
	}
    protected String pType;
    
The type of the picture as specified by the attribute of the v:shape node within the Word Document. This value is used as an identifier for a v:type node, which used to specify properties of the picture within the Word Document.

Returns:
    public String getPType() {
		return this.;
	}
	public void setPType(String value) {
		this. = value;
	}
New to GrepCode? Check out our FAQ X