/** * Convert the well formed XHTML contained in file to a list of WML objects. * * @param file * @param baseUrl * @param wordMLPackage * @return * @throws IOException */ public List<Object> convert(File file, String baseUrl) throws Docx4JException { renderer = getRenderer(); File parent = file.getAbsoluteFile().getParentFile(); try { renderer.setDocument( renderer.loadDocument(file.toURI().toURL().toExternalForm()), (parent == null ? "" : parent.toURI().toURL().toExternalForm()) ); } catch (MalformedURLException e) { throw new Docx4JException("Malformed URL", e); } renderer.layout(); traverse(renderer.getRootBox(), null); return imports.getContent(); }
renderer = getRenderer();
/** * Convert the well formed XHTML found at the specified URI to a list of WML objects. * * @param url * @param wordMLPackage * @return */ public List<Object> convert(URL url) throws Docx4JException { renderer = getRenderer(); String urlString = url.toString(); Document dom =renderer.loadDocument(urlString); renderer.setDocument(dom, urlString); renderer.layout(); traverse(renderer.getRootBox(), null); return imports.getContent(); }
/** * @param node * @param baseUrl * @param wordMLPackage * @return * @throws IOException */ public List<Object> convert(Node node, String baseUrl) throws Docx4JException { renderer = getRenderer(); if (node instanceof Document) { renderer.setDocument( (Document)node, baseUrl ); } else { Document doc = XmlUtils.neww3cDomDocument(); doc.importNode(node, true); renderer.setDocument( doc, baseUrl ); } renderer.layout(); traverse(renderer.getRootBox(), null); return imports.getContent(); }
/** * borders support * @param box table or cell to copy css border properties from * @param side "top"/"bottom"/"left"/"right" * @return border style */ private CTBorder createBorderStyle(Styleable styleable, String side) { FSDerivedValue borderStyle = styleable.getStyle().valueByName( CSSName.getByPropertyName("border-"+side+"-style") ); FSDerivedValue borderColor = styleable.getStyle().valueByName( CSSName.getByPropertyName("border-"+side+"-color") ); float width = styleable.getStyle().getFloatPropertyProportionalHeight( CSSName.getByPropertyName("border-"+side+"-width"), 0, importer.getRenderer().getLayoutContext() ); STBorder stBorder; try { stBorder = STBorder.fromValue( borderStyle.asString() ); } catch (IllegalArgumentException e) { stBorder = STBorder.SINGLE; } // w:ST_EighthPointMeasure - Measurement in Eighths of a Point width = UnitsOfMeasurement.twipToPoint( Math.round(width) ) * 8.0f; String color = borderColor.asString(); if (color.startsWith("#")) color=color.substring(1); return createBorderStyle( stBorder, color, BigInteger.valueOf( Math.round(width) ) ); }
/** * @param reader * @param baseUrl * @param wordMLPackage * @return * @throws IOException */ public List<Object> convert(Reader reader, String baseUrl) throws Docx4JException { renderer = getRenderer(); Document dom = XMLResource.load(reader).getDocument(); renderer.setDocument(dom, baseUrl); renderer.layout(); traverse(renderer.getRootBox(), null); return imports.getContent(); }
/** * @param source * @param baseUrl * @param wordMLPackage * @return * @throws IOException */ public List<Object> convert(Source source, String baseUrl) throws Docx4JException { renderer = getRenderer(); Document dom = XMLResource.load(source).getDocument(); renderer.setDocument(dom, baseUrl); renderer.layout(); traverse(renderer.getRootBox(), null); return imports.getContent(); }
/** * @param is * @param baseUrl * @param wordMLPackage * @return * @throws IOException */ public List<Object> convert(InputStream is, String baseUrl) throws Docx4JException { renderer = getRenderer(); Document dom = XMLResource.load(is).getDocument(); renderer.setDocument(dom, baseUrl); renderer.layout(); traverse(renderer.getRootBox(), null); return imports.getContent(); }
FSDerivedValue borderColor = box.getStyle().valueByName( CSSName.getByPropertyName("border-"+side+"-color") ); float width = box.getStyle().getFloatPropertyProportionalHeight( CSSName.getByPropertyName("border-"+side+"-width"), 0, importer.getRenderer().getLayoutContext() ); log.debug("border width: " + width);
/** * Convert the well formed XHTML from the specified SAX InputSource * * @param is * @param baseUrl * @param wordMLPackage * @return * @throws IOException */ public List<Object> convert(InputSource is, String baseUrl) throws Docx4JException { renderer = getRenderer(); Document dom = XMLResource.load(is).getDocument(); renderer.setDocument(dom, baseUrl); renderer.layout(); traverse(renderer.getRootBox(), null); return imports.getContent(); }
getRenderer().getLayoutContext()); // LayoutContext implements CssContext if (!box.getStyle().isMaxWidthNone()) { int maxWidth = box.getStyle().getMaxWidth(getRenderer().getLayoutContext(), 0); // revisit base value?
spacingWidth.setType(TblWidth.TYPE_AUTO); } else { int cssSpacing = cssTable.getStyle().getBorderHSpacing(importer.getRenderer().getLayoutContext()); spacingWidth.setW( BigInteger.valueOf(cssSpacing / 2) ); // appears twice thicker, probably taken from both sides spacingWidth.setType(TblWidth.TYPE_DXA);