Changeset 1637
- Timestamp:
- 08/07/11 10:34:49 (10 months ago)
- Location:
- trunk/docx4j/src
- Files:
-
- 6 added
- 4 deleted
- 13 edited
-
docx4j-extras/vfs (added)
-
docx4j-extras/vfs/org (added)
-
main/java/org/docx4j/convert/in/Doc.java (modified) (2 diffs)
-
main/java/org/docx4j/convert/out/AbstractConversionSettings.java (modified) (2 diffs)
-
main/java/org/docx4j/convert/out/html/AbstractHtmlExporter.java (modified) (3 diffs)
-
main/java/org/docx4j/convert/out/html/HTMLConversionImageHandler.java (added)
-
main/java/org/docx4j/convert/out/html/HtmlExporterNG2.java (modified) (3 diffs)
-
main/java/org/docx4j/convert/out/pdf/viaXSLFO/Conversion.java (modified) (2 diffs)
-
main/java/org/docx4j/convert/out/pdf/viaXSLFO/PDFConversionImageHandler.java (added)
-
main/java/org/docx4j/model/images/AbstractConversionImageHandler.java (added)
-
main/java/org/docx4j/model/images/AbstractWordXmlPicture.java (modified) (3 diffs)
-
main/java/org/docx4j/model/images/ConversionImageHandler.java (modified) (2 diffs)
-
main/java/org/docx4j/model/images/DefaultConversionImageHandler.java (deleted)
-
main/java/org/docx4j/model/images/FileConversionImageHandler.java (added)
-
main/java/org/docx4j/model/images/WordXmlPictureE20.java (modified) (1 diff)
-
main/java/org/docx4j/openpackaging/io/ExternalResourceUtils.java (modified) (2 diffs)
-
main/java/org/docx4j/openpackaging/io/LoadFromVFSZipFile.java (deleted)
-
main/java/org/docx4j/openpackaging/io/SaveToVFSZipFile.java (deleted)
-
main/java/org/docx4j/openpackaging/parts/WordprocessingML/MetafileEmfPart.java (modified) (2 diffs)
-
main/java/org/docx4j/openpackaging/parts/WordprocessingML/MetafilePart.java (modified) (2 diffs)
-
main/java/org/docx4j/openpackaging/parts/WordprocessingML/MetafileWmfPart.java (modified) (3 diffs)
-
main/java/org/docx4j/utils/VFSUtils.java (deleted)
-
pptx4j/java/org/pptx4j/convert/out/svginhtml/SvgExporter.java (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/docx4j/src/main/java/org/docx4j/convert/in/Doc.java
r515 r1637 24 24 import java.io.FileInputStream; 25 25 26 import org.apache.commons.vfs.FileSystemException;27 import org.apache.commons.vfs.FileType;28 import org.apache.commons.vfs.FileTypeSelector;29 import org.apache.commons.vfs.VFS;30 import org.apache.commons.vfs.provider.local.LocalFile;31 26 import org.apache.log4j.Logger; 32 27 import org.apache.poi.hwpf.HWPFDocument; 33 import org.apache.poi.hwpf.usermodel.*; 34 import org.docx4j.openpackaging.exceptions.Docx4JException; 28 import org.apache.poi.hwpf.usermodel.CharacterRun; 29 import org.apache.poi.hwpf.usermodel.Paragraph; 30 import org.apache.poi.hwpf.usermodel.Range; 31 import org.apache.poi.hwpf.usermodel.Section; 32 import org.apache.poi.hwpf.usermodel.Table; 33 import org.apache.poi.hwpf.usermodel.TableCell; 34 import org.apache.poi.hwpf.usermodel.TableRow; 35 35 import org.docx4j.openpackaging.io.SaveToZipFile; 36 36 import org.docx4j.openpackaging.packages.WordprocessingMLPackage; 37 37 import org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart; 38 import org.docx4j.utils.VFSUtils;39 38 40 39 /** … … 72 71 // public static boolean convert(org.apache.commons.vfs.FileObject in, 73 72 // WordprocessingMLPackage out) throws Exception { 74 75 /**76 * @param in77 * @return78 * @throws Exception79 */80 public static WordprocessingMLPackage convert(81 org.apache.commons.vfs.FileObject in) throws Exception {82 83 LocalFile localCopy = null;84 if (!(in instanceof LocalFile)) {85 86 StringBuffer sb = new StringBuffer("file:///");87 sb.append(System.getProperty("user.home"));88 sb.append("/.docx4j/tmp/");89 sb.append(in.getName().getBaseName());90 String tmpPath = sb.toString().replace('\\', '/');91 92 try {93 localCopy = (LocalFile) VFS.getManager().resolveFile(tmpPath);94 localCopy.copyFrom(in, new FileTypeSelector(FileType.FILE));95 localCopy.close();96 } catch (FileSystemException exc) {97 exc.printStackTrace();98 throw new Docx4JException(99 "Could not create a temporary local copy", exc);100 } finally {101 if (localCopy != null) {102 try {103 localCopy.delete();104 } catch (FileSystemException exc) {105 exc.printStackTrace();106 log.warn("Couldn't delete temporary file " + tmpPath);107 }108 }109 }110 } else {111 localCopy = (LocalFile) in;112 }113 114 String localPath = VFSUtils.getLocalFilePath(in);115 if (localPath == null) {116 throw new Docx4JException("Couldn't get local path");117 }118 119 HWPFDocument doc = new HWPFDocument(new FileInputStream(localPath));120 121 WordprocessingMLPackage out = WordprocessingMLPackage.createPackage();122 123 convert(doc, out);124 125 return out;126 }127 73 128 74 /** -
trunk/docx4j/src/main/java/org/docx4j/convert/out/AbstractConversionSettings.java
r1631 r1637 9 9 public abstract class AbstractConversionSettings { 10 10 11 public static final String IMAGE_INCLUDE_UUID = "imageIncludeUUID"; 11 12 public static final String IMAGE_DIR_PATH = "imageDirPath"; 12 13 public static final String IMAGE_HANDLER = "imageHandler"; … … 29 30 } 30 31 32 /** Should the image names be prefixed with an UUID to differentiate runs? Default: true 33 */ 34 public void setImageIncludeUUID(boolean imageIncludeUUID) { 35 settings.put(IMAGE_INCLUDE_UUID, Boolean.valueOf(imageIncludeUUID)); 36 } 37 38 public boolean isImageIncludeUUID() { 39 return (settings.containsKey(IMAGE_INCLUDE_UUID) ? 40 (Boolean)settings.get(IMAGE_INCLUDE_UUID) : 41 true); 42 } 43 31 44 public void setImageHandler(ConversionImageHandler imageHandler) { 32 45 settings.put(IMAGE_HANDLER, imageHandler); -
trunk/docx4j/src/main/java/org/docx4j/convert/out/html/AbstractHtmlExporter.java
r1631 r1637 283 283 public static class HtmlSettings extends AbstractConversionSettings { 284 284 285 public static final String IMAGE_TARGET_URI = "imageTargetUri"; 285 286 public static final String CONDITIONAL_COMMENTS = "conditionalComments"; 286 287 public static final String FONT_FAMILY_STACK = "fontFamilyStack"; … … 302 303 303 304 public void setConditionalComments(Boolean conditionalComments) { 304 settings.put( "conditionalComments", conditionalComments);305 settings.put(CONDITIONAL_COMMENTS, conditionalComments); 305 306 } 306 307 307 308 public void setFontFamilyStack(boolean val) { 308 settings.put( "fontFamilyStack", new Boolean(val));309 settings.put(FONT_FAMILY_STACK, new Boolean(val)); 309 310 } 310 311 … … 317 318 318 319 public void setUserCSS(String val) { 319 settings.put( "userCSS", val);320 settings.put(USER_CSS, val); 320 321 } 321 322 322 323 public void setUserScript(String val) { 323 settings.put( "userScript", val);324 settings.put(USER_SCRIPT, val); 324 325 } 325 326 326 327 public void setUserBodyTop(String val) { 327 settings.put( "userBodyTop", val);328 settings.put(USER_BODY_TOP, val); 328 329 } 329 330 330 331 public void setUserBodyTail(String val) { 331 settings.put( "userBodyTail", val);332 settings.put(USER_BODY_TAIL, val); 332 333 } 333 334 335 public void setImageTargetUri(String imageTargetUri) { 336 settings.put(IMAGE_TARGET_URI, imageTargetUri); 337 } 338 339 public String getImageTargetUri() { 340 return (String)settings.get(IMAGE_TARGET_URI); 341 } 334 342 } 335 343 -
trunk/docx4j/src/main/java/org/docx4j/convert/out/html/HtmlExporterNG2.java
r1631 r1637 23 23 import java.io.StringReader; 24 24 import java.util.HashMap; 25 import java.util.List;26 25 27 26 import javax.xml.bind.Unmarshaller; … … 38 37 import org.docx4j.convert.out.PageBreak; 39 38 import org.docx4j.jaxb.Context; 39 import org.docx4j.model.SymbolModel.SymbolModelTransformState; 40 40 import org.docx4j.model.TransformState; 41 import org.docx4j.model.SymbolModel.SymbolModelTransformState;42 import org.docx4j.model.images.DefaultConversionImageHandler;43 41 import org.docx4j.model.styles.StyleTree; 42 import org.docx4j.model.styles.StyleTree.AugmentedStyle; 44 43 import org.docx4j.model.styles.Tree; 45 import org.docx4j.model.styles.StyleTree.AugmentedStyle;46 44 import org.docx4j.model.table.TableModel.TableModelTransformState; 47 45 import org.docx4j.openpackaging.exceptions.Docx4JException; 48 46 import org.docx4j.openpackaging.packages.WordprocessingMLPackage; 49 47 import org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart; 50 import org.docx4j.wml.Body;51 48 import org.docx4j.wml.PPr; 52 49 import org.docx4j.wml.RPr; … … 228 225 boolean privateImageHandler = false; 229 226 if (htmlSettings.getImageHandler() == null) { 230 htmlSettings.setImageHandler(htmlSettings.getImageDirPath() != null ? 231 new DefaultConversionImageHandler(htmlSettings.getImageDirPath()) : 232 new DefaultConversionImageHandler()); 227 htmlSettings.setImageHandler( 228 new HTMLConversionImageHandler(htmlSettings.getImageDirPath(), 229 htmlSettings.getImageTargetUri(), 230 htmlSettings.isImageIncludeUUID())); 233 231 privateImageHandler = true; 234 232 } -
trunk/docx4j/src/main/java/org/docx4j/convert/out/pdf/viaXSLFO/Conversion.java
r1631 r1637 45 45 import org.docx4j.model.SymbolModel.SymbolModelTransformState; 46 46 import org.docx4j.model.TransformState; 47 import org.docx4j.model.images.DefaultConversionImageHandler;48 47 import org.docx4j.model.listnumbering.Emulator.ResultTriple; 49 48 import org.docx4j.model.properties.Property; … … 304 303 if (settings.getImageHandler() == null) { 305 304 settings.setImageHandler(settings.getImageDirPath() != null ? 306 new DefaultConversionImageHandler(settings.getImageDirPath()) :307 new DefaultConversionImageHandler());305 new PDFConversionImageHandler(settings.getImageDirPath(), true) : 306 new PDFConversionImageHandler()); 308 307 privateImageHandler = true; 309 308 } -
trunk/docx4j/src/main/java/org/docx4j/model/images/AbstractWordXmlPicture.java
r1631 r1637 5 5 6 6 import org.apache.log4j.Logger; 7 import org.docx4j.openpackaging.exceptions.Docx4JException; 7 8 import org.docx4j.openpackaging.packages.WordprocessingMLPackage; 8 9 import org.docx4j.openpackaging.parts.Part; … … 257 258 setID(imgRelId); 258 259 259 if (rel.getTargetMode() == null || rel.getTargetMode().equals("Internal")) { 260 part = sourcePart.getRelationshipsPart().getPart(rel); 261 if (!(part instanceof BinaryPart)) { 262 log.error("Invalid part type id: " + imgRelId + ", class = " + part.getClass().getName()); 263 ignoreImage = true; 264 } 260 part = sourcePart.getRelationshipsPart().getPart(rel); 261 /* a part == null is ok if it is an external image, 262 * and hasn't been loaded (loadExternalTargets == false) 263 * but the relationship can be external, 264 * but the part avaiable (loadExternalTargets == true) 265 */ 266 if ((part != null) && (!(part instanceof BinaryPart))) { 267 log.error("Invalid part type id: " + imgRelId + ", class = " + part.getClass().getName()); 268 ignoreImage = true; 265 269 } 266 270 if (!ignoreImage) { … … 280 284 */ 281 285 protected String handlePart(ConversionImageHandler imageHandler, AbstractWordXmlPicture picture, Relationship relationship, BinaryPart binaryPart) { 282 return imageHandler.handleImage(picture, relationship, binaryPart); 286 String uri = null; 287 try { 288 uri = imageHandler.handleImage(picture, relationship, binaryPart); 289 } 290 catch (Docx4JException de) { 291 if (relationship != null) { 292 log.error("Exception handling image id: " + relationship.getId() + ", target '" + relationship.getTarget() + "': " + de.toString(), de); 293 } 294 else { 295 log.error("Exception handling image: " + de.toString(), de); 296 } 297 } 298 return uri; 283 299 } 284 300 -
trunk/docx4j/src/main/java/org/docx4j/model/images/ConversionImageHandler.java
r1631 r1637 2 2 3 3 import org.docx4j.model.images.AbstractWordXmlPicture; 4 import org.docx4j.openpackaging.exceptions.Docx4JException; 4 5 import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPart; 5 6 import org.docx4j.relationships.Relationship; … … 15 16 * @param part of the image, if it is an internal image, otherwise null 16 17 * @return uri for the image we've saved, or null 18 * @throws Docx4JException this exception will be logged, but not propagated 17 19 */ 18 public String handleImage(AbstractWordXmlPicture picture, Relationship relationship, BinaryPart part) ;20 public String handleImage(AbstractWordXmlPicture picture, Relationship relationship, BinaryPart part) throws Docx4JException; 19 21 } -
trunk/docx4j/src/main/java/org/docx4j/model/images/WordXmlPictureE20.java
r1631 r1637 250 250 CTBlip blip = pic.getBlipFill().getBlip(); 251 251 252 String imgRelId = blip.getEmbed(); 253 if (imgRelId!=null) { 252 String imgRelId = blip.getEmbed(); 253 if ((imgRelId == null) || (imgRelId.length() == 0)) { 254 imgRelId = blip.getLink(); 255 } 256 if ((imgRelId != null) && (imgRelId.length() > 0)) { 254 257 converter.handleImageRel(imageHandler, imgRelId, sourcePart); 255 } else if (blip.getLink()!=null) { 256 converter.handleImageRel(imageHandler, blip.getLink(), sourcePart); 257 } else { 258 } 259 else { 258 260 log.error("not linked or embedded?!"); 259 261 } -
trunk/docx4j/src/main/java/org/docx4j/openpackaging/io/ExternalResourceUtils.java
r1232 r1637 1 1 package org.docx4j.openpackaging.io; 2 2 3 import org.apache.commons.vfs.FileContent; 4 import org.apache.commons.vfs.FileObject; 5 import org.apache.commons.vfs.FileSystemException; 6 import org.apache.commons.vfs.VFS; 3 import java.io.IOException; 4 import java.io.InputStream; 5 import java.net.MalformedURLException; 6 import java.net.URI; 7 import java.net.URISyntaxException; 8 import java.net.URL; 9 import java.util.Map; 10 import java.util.TreeMap; 11 7 12 import org.apache.log4j.Logger; 13 import org.docx4j.openpackaging.contenttype.ContentTypes; 8 14 import org.docx4j.openpackaging.exceptions.Docx4JException; 9 15 import org.docx4j.openpackaging.parts.ExternalTarget; 10 16 import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPart; 17 import org.docx4j.openpackaging.parts.WordprocessingML.ImageBmpPart; 11 18 import org.docx4j.openpackaging.parts.WordprocessingML.ImageGifPart; 12 19 import org.docx4j.openpackaging.parts.WordprocessingML.ImageJpegPart; 13 20 import org.docx4j.openpackaging.parts.WordprocessingML.ImagePngPart; 21 import org.docx4j.openpackaging.parts.WordprocessingML.ImageTiffPart; 22 import org.docx4j.openpackaging.parts.WordprocessingML.MetafileEmfPart; 23 import org.docx4j.openpackaging.parts.WordprocessingML.MetafileWmfPart; 14 24 15 25 public class ExternalResourceUtils { … … 20 30 21 31 private static Logger log = Logger.getLogger(ExternalResourceUtils.class); 32 protected static final Map<String, String> CONTENT_TYPE_MAP = new TreeMap<String, String>(); 33 34 static { 35 CONTENT_TYPE_MAP.put(ContentTypes.EXTENSION_BMP, ContentTypes.IMAGE_BMP); 36 CONTENT_TYPE_MAP.put(ContentTypes.EXTENSION_EMF, ContentTypes.IMAGE_EMF); 37 CONTENT_TYPE_MAP.put(ContentTypes.EXTENSION_GIF, ContentTypes.IMAGE_GIF); 38 CONTENT_TYPE_MAP.put(ContentTypes.EXTENSION_JPG_1, ContentTypes.IMAGE_JPEG); 39 CONTENT_TYPE_MAP.put(ContentTypes.EXTENSION_JPG_2, ContentTypes.IMAGE_JPEG); 40 CONTENT_TYPE_MAP.put(ContentTypes.EXTENSION_PNG, ContentTypes.IMAGE_PNG); 41 CONTENT_TYPE_MAP.put(ContentTypes.EXTENSION_TIFF, ContentTypes.IMAGE_TIFF); 42 CONTENT_TYPE_MAP.put("tif", ContentTypes.IMAGE_TIFF); 43 CONTENT_TYPE_MAP.put(ContentTypes.EXTENSION_WMF, ContentTypes.IMAGE_WMF); 44 } 22 45 23 46 public static BinaryPart getExternalResource(String absoluteTarget) throws Docx4JException { 24 47 URI targetURI = null; 48 URL targetURL = null; 49 int p = absoluteTarget.lastIndexOf('.'); 50 String fileExtension = (p > -1 ? absoluteTarget.substring(p+1).toLowerCase() : null); 51 String contentType = (fileExtension != null ? CONTENT_TYPE_MAP.get(fileExtension) : null); 52 BinaryPart binaryPart = null; 53 InputStream inStream = null; 25 54 try { 26 FileObject fo = VFS.getManager().resolveFile(absoluteTarget); 27 28 ExternalTarget externalTarget = new ExternalTarget(absoluteTarget); 29 30 // Assume it is a binary part, though there is no reason in principle 31 // that it couldn't be an XML part.. 32 BinaryPart bp; 33 if (absoluteTarget.toLowerCase().endsWith(".gif" )) { 34 35 bp = new ImageGifPart(externalTarget); 36 37 } else if (absoluteTarget.toLowerCase().endsWith(".jpeg" ) 38 || absoluteTarget.toLowerCase().endsWith(".jpg" )) { 39 40 bp = new ImageJpegPart(externalTarget); 41 42 } else if (absoluteTarget.toLowerCase().endsWith(".png" )) { 43 44 bp = new ImagePngPart(externalTarget); 45 46 } else { 47 log.warn("Using simple BinaryPart for " + absoluteTarget); 48 bp = new BinaryPart(externalTarget); 49 } 50 51 FileContent fc = fo.getContent(); 52 bp.setBinaryData(fc.getInputStream()); 53 54 return bp; 55 56 } catch (FileSystemException exc) { 57 exc.printStackTrace(); 58 throw new Docx4JException("Couldn't get FileObject", exc); 55 targetURI = new URI(absoluteTarget.replace('\\', '/')); 59 56 } 60 57 catch (URISyntaxException use) { 58 throw new Docx4JException("Invalid absolute Target: '" + absoluteTarget + "'", use); 59 } 60 try { 61 targetURL = targetURI.toURL(); 62 } catch (MalformedURLException mue) { 63 throw new Docx4JException("Invalid absolute Target: '" + absoluteTarget + "'", mue); 64 } 65 try { 66 inStream = targetURL.openStream(); 67 binaryPart = createBinaryPart(absoluteTarget, contentType); 68 binaryPart.setBinaryData(inStream); 69 } catch (IOException ioe) { 70 throw new Docx4JException("Could not load external resource: '" + absoluteTarget + "'", ioe); 71 } 72 return binaryPart; 61 73 } 62 74 75 protected static BinaryPart createBinaryPart(String absoluteTarget, String contentType) { 76 ExternalTarget externalTarget = new ExternalTarget(absoluteTarget); 77 BinaryPart ret = null; 78 if (ContentTypes.IMAGE_JPEG.equals(contentType)) 79 ret = new ImageJpegPart(externalTarget); 80 else if (ContentTypes.IMAGE_PNG.equals(contentType)) 81 ret = new ImagePngPart(externalTarget); 82 else if (ContentTypes.IMAGE_GIF.equals(contentType)) 83 ret = new ImageGifPart(externalTarget); 84 else if (ContentTypes.IMAGE_TIFF.equals(contentType)) 85 ret = new ImageTiffPart(externalTarget); 86 else if (ContentTypes.IMAGE_BMP.equals(contentType)) 87 ret = new ImageBmpPart(externalTarget); 88 else if (ContentTypes.IMAGE_EMF.equals(contentType)) 89 ret = new MetafileEmfPart(externalTarget); 90 else if (ContentTypes.IMAGE_WMF.equals(contentType)) 91 ret = new MetafileWmfPart(externalTarget); 92 else 93 ret = new BinaryPart(externalTarget); 94 95 return ret; 96 } 63 97 64 98 } -
trunk/docx4j/src/main/java/org/docx4j/openpackaging/parts/WordprocessingML/MetafileEmfPart.java
r1487 r1637 1 1 package org.docx4j.openpackaging.parts.WordprocessingML; 2 2 3 import java.io.File;4 import java.io.FileInputStream;5 import java.io.FileOutputStream;6 import java.io.OutputStream;7 8 3 import org.docx4j.openpackaging.exceptions.InvalidFormatException; 4 import org.docx4j.openpackaging.parts.ExternalTarget; 9 5 import org.docx4j.openpackaging.parts.PartName; 10 6 import org.docx4j.openpackaging.parts.relationships.Namespaces; 11 import org.docx4j.utils.BufferUtil;12 7 13 8 /** … … 61 56 } 62 57 58 public MetafileEmfPart(ExternalTarget externalTarget) { 59 super(externalTarget); 60 init(); 61 } 62 63 63 public void init() { 64 64 // Used if this Part is added to [Content_Types].xml -
trunk/docx4j/src/main/java/org/docx4j/openpackaging/parts/WordprocessingML/MetafilePart.java
r1487 r1637 2 2 3 3 import org.docx4j.openpackaging.exceptions.InvalidFormatException; 4 import org.docx4j.openpackaging.parts.ExternalTarget; 4 5 import org.docx4j.openpackaging.parts.PartName; 5 6 … … 16 17 } 17 18 19 public MetafilePart(ExternalTarget externalTarget) { 20 super(externalTarget); 21 } 18 22 19 23 } -
trunk/docx4j/src/main/java/org/docx4j/openpackaging/parts/WordprocessingML/MetafileWmfPart.java
r1078 r1637 1 1 package org.docx4j.openpackaging.parts.WordprocessingML; 2 2 3 import java.io.File;4 import java.io.FileInputStream;5 import java.io.FileNotFoundException;6 import java.io.FileOutputStream;7 import java.io.IOException;8 3 import java.io.InputStream; 9 import java.io.OutputStream;10 11 import javax.xml.transform.OutputKeys;12 import javax.xml.transform.Transformer;13 import javax.xml.transform.TransformerFactory;14 import javax.xml.transform.dom.DOMSource;15 import javax.xml.transform.stream.StreamResult;16 4 17 5 import net.arnx.wmf2svg.gdi.svg.SvgGdi; … … 19 7 20 8 import org.docx4j.openpackaging.exceptions.InvalidFormatException; 9 import org.docx4j.openpackaging.parts.ExternalTarget; 21 10 import org.docx4j.openpackaging.parts.PartName; 22 11 import org.docx4j.openpackaging.parts.relationships.Namespaces; … … 64 53 } 65 54 55 public MetafileWmfPart(ExternalTarget externalTarget) { 56 super(externalTarget); 57 init(); 58 } 59 66 60 public void init() { 67 61 // Used if this Part is added to [Content_Types].xml -
trunk/docx4j/src/pptx4j/java/org/pptx4j/convert/out/svginhtml/SvgExporter.java
r1631 r1637 19 19 import org.docx4j.convert.out.AbstractConversionSettings; 20 20 import org.docx4j.convert.out.html.AbstractHtmlExporter; 21 import org.docx4j.convert.out.html.HTMLConversionImageHandler; 21 22 import org.docx4j.convert.out.html.AbstractHtmlExporter.HtmlSettings; 22 23 import org.docx4j.dml.CTTextCharacterProperties; 23 24 import org.docx4j.dml.CTTextParagraphProperties; 24 25 import org.docx4j.dml.CTTransform2D; 25 import org.docx4j.model.images.DefaultConversionImageHandler;26 26 import org.docx4j.model.styles.StyleTree; 27 27 import org.docx4j.model.styles.Tree; … … 56 56 57 57 public static class SvgSettings extends AbstractConversionSettings { 58 58 public static final String IMAGE_TARGET_URI = "imageTargetUri"; 59 60 public void setImageTargetUri(String imageTargetUri) { 61 settings.put(IMAGE_TARGET_URI, imageTargetUri); 62 } 63 64 public String getImageTargetUri() { 65 return (String)settings.get(IMAGE_TARGET_URI); 66 } 59 67 } 60 68 … … 156 164 boolean privateImageHandler = false; 157 165 if (settings.getImageHandler() == null) { 158 settings.setImageHandler(settings.getImageDirPath() != null ? 159 new DefaultConversionImageHandler(settings.getImageDirPath()) : 160 new DefaultConversionImageHandler()); 166 settings.setImageHandler( 167 new HTMLConversionImageHandler(settings.getImageDirPath(), 168 settings.getImageTargetUri(), 169 settings.isImageIncludeUUID())); 161 170 privateImageHandler = true; 162 171 }
Note: See TracChangeset
for help on using the changeset viewer.
