AnsweredAssumed Answered

Custom Transformations ¿Cómo?

Question asked by magarcia_sm on Mar 21, 2016
Latest reply on Mar 30, 2016 by magarcia_sm
Hola Buenos días

Necesito declarar una transformación entre TIFF y PDF para que ejecute un comando que extraiga mediante OCR la información contenida en el TIFF y la muestre en el PDF.

En la versión 4.2 ¿qué pasos y cómo debo hacer esto?

He estado buscando en la documentación de Alfresco, y la verdad es que no encuentro ningún manual que lo explique un poco.

Lo que yo he hecho hasta el momento ha sido

1) Crear un fichero OCR-FR-transformers-context.xml con el siguiente contenido:


<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>

<beans>

    <bean id="transformer.worker.tiff2pdf" class="org.alfresco.repo.content.transform.RuntimeExecutableContentTransformerWorker">
        <property name="mimetypeService">
            <ref bean="mimetypeService" />
        </property>
        <property name="checkCommand">
            <bean class="org.alfresco.util.exec.RuntimeExec">
                <property name="commandsAndArguments">
                    <map>
                        <entry key=".*">
                            <list>
                                <value>abbyyocr9</value>
                            </list>
                        </entry>
                    </map>
                </property>
            </bean>
        </property>

        <property name="transformCommand">
            <bean class="org.alfresco.util.exec.RuntimeExec">
                <property name="commandsAndArguments">
                    <map>
                        <entry key=".*">
                            <list>
                                <value>
                                    abbyyocr9 -rl Spanish -fm -rdss -afoe -if ${source} -f PDF -pfpf LZWGray -pem ImageOnText -pfpr 300 -prl -of ${target}
                                </value>
                            </list>
                        </entry>
                    </map>
                </property>
                <property name="errorCodes">
                    <value>1,2</value>
                </property>
            </bean>
        </property>

        <property name="explicitTransformations">
            <list>
                <bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
                    <property name="sourceMimetype"><value>image/tiff</value></property>
                    <property name="targetMimetype"><value>application/pdf</value></property>
                </bean>
            </list>
        </property>
    </bean>

    <bean id="transformer.tiff2pdf" class="org.alfresco.repo.content.transform.ProxyContentTransformer" parent="baseContentTransformer">
        <property name="worker">
            <ref bean="transformer.worker.tiff2pdf" />
        </property>
    </bean>

    <bean id="transformer.worker.Jpg2pdf" class="org.alfresco.repo.content.transform.RuntimeExecutableContentTransformerWorker">
        <property name="mimetypeService">
            <ref bean="mimetypeService" />
        </property>
        <property name="checkCommand">
            <bean class="org.alfresco.util.exec.RuntimeExec">
                <property name="commandsAndArguments">
                    <map>
                        <entry key=".*">
                            <list>
                                <value>abbyyocr9</value>
                            </list>
                        </entry>
                    </map>
                </property>
            </bean>
        </property>

        <property name="transformCommand">
            <bean class="org.alfresco.util.exec.RuntimeExec">
                <property name="commandsAndArguments">
                    <map>
                        <entry key=".*">
                            <list>
                                <value>
                                    abbyyocr9 -if ${source} -f PDF -pfpf JpegColor -pem ImageOnText -pfpr 200 -pfq 100 -prl -of ${target}
                                </value>
                            </list>
                        </entry>
                    </map>
                </property>
                <property name="errorCodes">
                    <value>1,2</value>
                </property>
            </bean>
        </property>

        <property name="explicitTransformations">
            <list>
                <bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
                    <property name="sourceMimetype"><value>image/jpeg</value></property>
                    <property name="targetMimetype"><value>application/pdf</value></property>
                </bean>
            </list>
        </property>
    </bean>

    <bean id="transformer.Jpg2pdf" class="org.alfresco.repo.content.transform.ProxyContentTransformer" parent="baseContentTransformer">
        <property name="worker">
            <ref bean="transformer.worker.Jpg2pdf" />
        </property>
    </bean>

</beans>


El fichero lo hemos introducido en /classes/alfresco/extension

2) Hemos añadido el siguiente código al web-client-config-custom.xml


    <config evaluator="string-compare" condition="Action Wizards" replace="false">

        <transformers>

            <transformer name="image/tiff"/>

        </transformers>

    </config>


La transformación a pdf la está haciendo correctamente y no da ningún error, pero no la está haciendo con OCR, parece que la hace con la transformación que tiene por defecto Alfresco.

¿Algo más que debamos realizar?


Gracias

Outcomes