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:
Roy Wetherall
2008-09-03 18:37:10 +00:00
parent 52ebc9eb5e
commit 0876d67c4d
4 changed files with 88 additions and 3 deletions

View File

@@ -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" />

View File

@@ -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>

View File

@@ -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
{ {

View File

@@ -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