mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Thumbnail Service: text and html to image and swf now work
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@10705 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -271,6 +271,22 @@
|
|||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
<bean id="transformer.complex.Text.Image"
|
||||||
|
class="org.alfresco.repo.content.transform.ComplexContentTransformer"
|
||||||
|
parent="baseContentTransformer" >
|
||||||
|
<property name="transformers">
|
||||||
|
<list>
|
||||||
|
<ref bean="transformer.PdfBox.TextToPdf" />
|
||||||
|
<ref bean="transformer.complex.PDF.Image" />
|
||||||
|
</list>
|
||||||
|
</property>
|
||||||
|
<property name="intermediateMimetypes">
|
||||||
|
<list>
|
||||||
|
<value>application/pdf</value>
|
||||||
|
</list>
|
||||||
|
</property>
|
||||||
|
</bean>
|
||||||
|
|
||||||
<bean id="transformer.Poi"
|
<bean id="transformer.Poi"
|
||||||
class="org.alfresco.repo.content.transform.PoiHssfContentTransformer"
|
class="org.alfresco.repo.content.transform.PoiHssfContentTransformer"
|
||||||
parent="baseContentTransformer" />
|
parent="baseContentTransformer" />
|
||||||
|
@@ -30,5 +30,21 @@
|
|||||||
</list>
|
</list>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
<bean id="transformer.complex.Text.Pdf2swf"
|
||||||
|
class="org.alfresco.repo.content.transform.ComplexContentTransformer"
|
||||||
|
parent="baseContentTransformer" >
|
||||||
|
<property name="transformers">
|
||||||
|
<list>
|
||||||
|
<ref bean="transformer.PdfBox.TextToPdf" />
|
||||||
|
<ref bean="transformer.Pdf2swf" />
|
||||||
|
</list>
|
||||||
|
</property>
|
||||||
|
<property name="intermediateMimetypes">
|
||||||
|
<list>
|
||||||
|
<value>application/pdf</value>
|
||||||
|
</list>
|
||||||
|
</property>
|
||||||
|
</bean>
|
||||||
|
|
||||||
</beans>
|
</beans>
|
||||||
|
@@ -25,6 +25,7 @@
|
|||||||
package org.alfresco.repo.thumbnail;
|
package org.alfresco.repo.thumbnail;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.text.MessageFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -55,7 +56,7 @@ import org.alfresco.util.ParameterCheck;
|
|||||||
public class ThumbnailServiceImpl implements ThumbnailService
|
public class ThumbnailServiceImpl implements ThumbnailService
|
||||||
{
|
{
|
||||||
/** Error messages */
|
/** Error messages */
|
||||||
private static final String ERR_NO_CREATE = "Thumbnail could not be created as required transformation is not supported.";
|
private static final String ERR_NO_CREATE = "Thumbnail could not be created as required transformation is not supported from {0} to {1}";
|
||||||
private static final String ERR_DUPLICATE_NAME = "Thumbnail could not be created because of a duplicate name";
|
private static final String ERR_DUPLICATE_NAME = "Thumbnail could not be created because of a duplicate name";
|
||||||
private static final String ERR_NO_PARENT = "Thumbnail has no parent so update cannot take place.";
|
private static final String ERR_NO_PARENT = "Thumbnail has no parent so update cannot take place.";
|
||||||
private static final String ERR_TOO_PARENT = "Thumbnail has more than one source content node. This is invalid so update cannot take place.";
|
private static final String ERR_TOO_PARENT = "Thumbnail has more than one source content node. This is invalid so update cannot take place.";
|
||||||
@@ -209,7 +210,7 @@ public class ThumbnailServiceImpl implements ThumbnailService
|
|||||||
if (this.contentService.isTransformable(reader, writer, transformationOptions) == false)
|
if (this.contentService.isTransformable(reader, writer, transformationOptions) == false)
|
||||||
{
|
{
|
||||||
// Throw exception indicating that the thumbnail could not be created
|
// Throw exception indicating that the thumbnail could not be created
|
||||||
throw new ThumbnailException(ERR_NO_CREATE);
|
throw new ThumbnailException(MessageFormat.format(ERR_NO_CREATE, reader.getMimetype(), writer.getMimetype()));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -278,7 +279,7 @@ public class ThumbnailServiceImpl implements ThumbnailService
|
|||||||
if (this.contentService.isTransformable(reader, writer, transformationOptions) == false)
|
if (this.contentService.isTransformable(reader, writer, transformationOptions) == false)
|
||||||
{
|
{
|
||||||
// Throw exception indicating that the thumbnail could not be created
|
// Throw exception indicating that the thumbnail could not be created
|
||||||
throw new ThumbnailException(ERR_NO_CREATE);
|
throw new ThumbnailException(MessageFormat.format(ERR_NO_CREATE, reader.getMimetype(), writer.getMimetype()));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@@ -37,6 +37,7 @@ import org.alfresco.repo.content.transform.AbstractContentTransformerTest;
|
|||||||
import org.alfresco.repo.content.transform.magick.ImageResizeOptions;
|
import org.alfresco.repo.content.transform.magick.ImageResizeOptions;
|
||||||
import org.alfresco.repo.content.transform.magick.ImageTransformationOptions;
|
import org.alfresco.repo.content.transform.magick.ImageTransformationOptions;
|
||||||
import org.alfresco.repo.jscript.ClasspathScriptLocation;
|
import org.alfresco.repo.jscript.ClasspathScriptLocation;
|
||||||
|
import org.alfresco.repo.node.db.NodeDaoService;
|
||||||
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
||||||
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||||
import org.alfresco.service.cmr.repository.ContentReader;
|
import org.alfresco.service.cmr.repository.ContentReader;
|
||||||
@@ -348,6 +349,57 @@ public class ThumbnailServiceImplTest extends BaseAlfrescoSpringTest
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testHTMLToImageAndSWF() throws Exception
|
||||||
|
{
|
||||||
|
NodeRef nodeRef = createOrigionalContent(this.folder, MimetypeMap.MIMETYPE_HTML);
|
||||||
|
ThumbnailDefinition def = this.thumbnailService.getThumbnailRegistry().getThumbnailDefinition("medium");
|
||||||
|
|
||||||
|
if (this.contentService.getTransformer(MimetypeMap.MIMETYPE_HTML, def.getMimetype(), def.getTransformationOptions()) != null)
|
||||||
|
{
|
||||||
|
NodeRef thumb = this.thumbnailService.createThumbnail(
|
||||||
|
nodeRef,
|
||||||
|
ContentModel.PROP_CONTENT,
|
||||||
|
def.getMimetype(),
|
||||||
|
def.getTransformationOptions(),
|
||||||
|
def.getName());
|
||||||
|
assertNotNull(thumb);
|
||||||
|
ContentReader reader = this.contentService.getReader(thumb, ContentModel.PROP_CONTENT);
|
||||||
|
assertNotNull(reader);
|
||||||
|
assertEquals(def.getMimetype(), reader.getMimetype());
|
||||||
|
assertTrue(reader.getSize() != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def = this.thumbnailService.getThumbnailRegistry().getThumbnailDefinition("webpreview");
|
||||||
|
if (this.contentService.getTransformer(MimetypeMap.MIMETYPE_HTML, def.getMimetype(), def.getTransformationOptions()) != null)
|
||||||
|
{
|
||||||
|
NodeRef thumb = this.thumbnailService.createThumbnail(
|
||||||
|
nodeRef,
|
||||||
|
ContentModel.PROP_CONTENT,
|
||||||
|
def.getMimetype(),
|
||||||
|
def.getTransformationOptions(),
|
||||||
|
def.getName());
|
||||||
|
assertNotNull(thumb);
|
||||||
|
ContentReader reader = this.contentService.getReader(thumb, ContentModel.PROP_CONTENT);
|
||||||
|
assertNotNull(reader);
|
||||||
|
assertEquals(def.getMimetype(), reader.getMimetype());
|
||||||
|
assertTrue(reader.getSize() != 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testRegistry()
|
||||||
|
{
|
||||||
|
ThumbnailRegistry thumbnailRegistry = this.thumbnailService.getThumbnailRegistry();
|
||||||
|
List<ThumbnailDefinition> defs = thumbnailRegistry.getThumnailDefintions(MimetypeMap.MIMETYPE_HTML);
|
||||||
|
System.out.println("Definitions ...");
|
||||||
|
for (ThumbnailDefinition def : defs)
|
||||||
|
{
|
||||||
|
System.out.println("Thumbnail Available: " + def.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// == Test the JavaScript API ==
|
// == Test the JavaScript API ==
|
||||||
|
|
||||||
public void testJSAPI() throws Exception
|
public void testJSAPI() throws Exception
|
||||||
|
Reference in New Issue
Block a user