cancel
Showing results for 
Search instead for 
Did you mean: 

View thumbnail of SVG in documentlibrary?

gronfelt
Champ in-the-making
Champ in-the-making
Whenever a folder containing SVG-files is viewed in the Document Library Alfresco throws an error claiming that svg to png conversion is not supported:

11:38:54,849 ERROR [org.alfresco.web.scripts.AbstractRuntime] Exception from executeScript - redirecting to status template error: 09290027 Wrapped Exception (with status template): 09290026 Failed to execute script '/org/alfresco/repository/thumbnail/thumbnail.get.js (in classpath store file:/opt/Alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/templates/webscripts)': 09290025 Thumbnail could not be created as required transformation is not supported from image/svg to image/pngorg.alfresco.web.scripts.WebScriptException: 09290027 Wrapped Exception (with status template): 09290026 Failed to execute script '/org/alfresco/repository/thumbnail/thumbnail.get.js (in classpath store file:/opt/Alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/templates/webscripts)': 09290025 Thumbnail could not be created as required transformation is not supported from image/svg to image/png   at org.alfresco.web.scripts.AbstractWebScript.createStatusException(AbstractWebScript.java:613)   at org.alfresco.repo.web.scripts.content.StreamContent.execute(StreamContent.java:211)   at org.alfresco.repo.web.scripts.RepositoryContainer$2.execute(RepositoryContainer.java:371)   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:326)   at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecute(RepositoryContainer.java:421)   at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecuteAs(RepositoryContainer.java:438)   at org.alfresco.repo.web.scripts.RepositoryContainer.executeScript(RepositoryContainer.java:302)   at org.alfresco.web.scripts.AbstractRuntime.executeScript(AbstractRuntime.java:295)   at org.alfresco.web.scripts.AbstractRuntime.executeScript(AbstractRuntime.java:172)   at org.alfresco.web.scripts.servlet.WebScriptServlet.service(WebScriptServlet.java:122)   at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)   at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)   at java.lang.Thread.run(Thread.java:619)Caused by: org.alfresco.scripts.ScriptException: 09290026 Failed to execute script '/org/alfresco/repository/thumbnail/thumbnail.get.js (in classpath store file:/opt/Alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/templates/webscripts)': 09290025 Thumbnail could not be created as required transformation is not supported from image/svg to image/png   at org.alfresco.repo.jscript.RhinoScriptProcessor.execute(RhinoScriptProcessor.java:178)   at org.alfresco.repo.processor.ScriptServiceImpl.executeScript(ScriptServiceImpl.java:274)   at org.alfresco.repo.web.scripts.RepositoryScriptProcessor.executeScript(RepositoryScriptProcessor.java:108)   at org.alfresco.web.scripts.AbstractWebScript.executeScript(AbstractWebScript.java:819)   at org.alfresco.repo.web.scripts.content.StreamContent.execute(StreamContent.java:157)   … 21 moreCaused by: org.alfresco.service.cmr.thumbnail.ThumbnailException: 09290025 Thumbnail could not be created as required transformation is not supported from image/svg to image/png   at org.alfresco.repo.thumbnail.ThumbnailServiceImpl$1.doWork(ThumbnailServiceImpl.java:260)   at org.alfresco.repo.thumbnail.ThumbnailServiceImpl$1.doWork(ThumbnailServiceImpl.java:180)   at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:503)   at org.alfresco.repo.thumbnail.ThumbnailServiceImpl.createThumbnail(ThumbnailServiceImpl.java:178)   at org.alfresco.repo.thumbnail.ThumbnailServiceImpl.createThumbnail(ThumbnailServiceImpl.java:146)   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)   at java.lang.reflect.Method.invoke(Method.java:597)   at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)   at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)   at org.alfresco.repo.security.permissions.impl.AlwaysProceedMethodInterceptor.invoke(AlwaysProceedMethodInterceptor.java:40)   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)   at org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke(ExceptionTranslatorMethodInterceptor.java:49)   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)   at org.alfresco.repo.audit.AuditMethodInterceptor.proceed(AuditMethodInterceptor.java:189)   at org.alfresco.repo.audit.AuditMethodInterceptor.invoke(AuditMethodInterceptor.java:152)   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)   at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)   at $Proxy99.createThumbnail(Unknown Source)   at org.alfresco.repo.jscript.ScriptNode.createThumbnail(ScriptNode.java:2207)   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)   at java.lang.reflect.Method.invoke(Method.java:597)   at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:155)   at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:243)   at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:76)   at org.mozilla.javascript.gen.c10._c1(file:/opt/Alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/templates/webscripts/org/alfresco/repository/thumbnail/thumbnail.get.js:61)   at org.mozilla.javascript.gen.c10.call(file:/opt/Alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/templates/webscripts/org/alfresco/repository/thumbnail/thumbnail.get.js)   at org.mozilla.javascript.optimizer.OptRuntime.callName0(OptRuntime.java:108)   at org.mozilla.javascript.gen.c10._c0(file:/opt/Alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/templates/webscripts/org/alfresco/repository/thumbnail/thumbnail.get.js:101)   at org.mozilla.javascript.gen.c10.call(file:/opt/Alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/templates/webscripts/org/alfresco/repository/thumbnail/thumbnail.get.js)   at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:393)   at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:2834)   at org.mozilla.javascript.gen.c10.call(file:/opt/Alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/templates/webscripts/org/alfresco/repository/thumbnail/thumbnail.get.js)   at org.mozilla.javascript.gen.c10.exec(file:/opt/Alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/templates/webscripts/org/alfresco/repository/thumbnail/thumbnail.get.js)   at org.alfresco.repo.jscript.RhinoScriptProcessor.executeScriptImpl(RhinoScriptProcessor.java:457)   at org.alfresco.repo.jscript.RhinoScriptProcessor.execute(RhinoScriptProcessor.java:174)   … 25 more‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

How can I fix this? Since ImageMagick can convert from SVG to PNG it seems to me that I should be able to tell Alfresco to perform that conversion somehow, but I don't know where to look.
3 REPLIES 3

zaizi
Champ in-the-making
Champ in-the-making
Looks like Alfresco explicitly do not support the transformation in org.alfresco.repo.content.transform.magick.AbstractImageMagickContentTransformer. If you can get it to work, you are going to have to override the method and provide your own transformer implementation.

    /**     * Some image formats are not supported by ImageMagick, or at least appear not to work.     *      * @param mimetype the mimetype to check     * @return Returns true if ImageMagic can handle the given image format     */    public static boolean isSupported(String mimetype)    {        if (!mimetype.startsWith(MIMETYPE_IMAGE_PREFIX))        {            return false;   // not an image        }        else if (mimetype.equals(MimetypeMap.MIMETYPE_IMAGE_RGB))        {            return false;   // rgb extension doesn't work        }        else if (mimetype.equals(MimetypeMap.MIMETYPE_IMAGE_SVG))        {            return false;   // svg extension doesn't work        }        else        {            return true;        }    }‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

gronfelt
Champ in-the-making
Champ in-the-making
Thanks for that, I guess it's not as easy as I had hoped then.

It seems a bit odd though that Alfresco can't handle this in a better way than throwing an exception every time the situation occurs.

rasm
Champ in-the-making
Champ in-the-making
Although this is an old thread,

Try this module http://code.google.com/p/alfresco-svg/ . It has thumbnailing, preview and indexing support

Performance could be tweaked, because thumbnails are generated for all definitions