Imagemagick tiff2pdf transformer deaktivieren

cancel
Showing results for 
Search instead for 
Did you mean: 
akeller
Member II

Imagemagick tiff2pdf transformer deaktivieren

Ich benutze seit Version 4.02 CE einen ocr transformer mit abbyyocr und es funktioniert bestens.
Momentan teste ich die Alfresco CE 4.2c und habe wegen der neuen automatischen Auswahl der Transformer nach ihrer Performance das Problem, dass der ocr transformer gelegentlich durch den tiff2pdf transformer mit ImageMagick ersetzt wird.

Ich habe nicht herausgefunden, wo der Transformer Imagemagick für tiff->pdf definiert wird, auch nicht in /opt/alfresco-4.2.c/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/content-services-context.xml

Folgender Versuch führt zu einer Fehlermeldung (bzw. rotem Balken "Keine Dateien") , wenn bestimmte Ordner gelistet werden:

Mein OCR-Kontext mit den Transfomer Limits (ein Limit von 0 in transformer.ImageMagick und ein Limit von 80mb in transformer.tiff2pdf


<?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.ImageMagick"
        class="org.alfresco.repo.content.transform.ProxyContentTransformer"
        parent="baseContentTransformer">
                <property name="mimetypeLimits">
                    <map>
                        <entry key="image/tiff">
                                <map>
                                        <entry key="application/pdf">
                                                <bean class="org.alfresco.service.cmr.repository.TransformationOptionLimits">
                                              <property name="maxSourceSizeKBytes">
                                                       <value>0</value>
                                              </property>

                                        </bean>
                                  </entry>
                        </map>
                </entry>
           </map>
        </property>
        </bean>

<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>/opt/ABBYYOCR9/abbyyocrwrapper.sh</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>/opt/ABBYYOCR9/abbyyocrwrapper.sh</value>

                                                                <value>-rl</value>
                                                                <value>German</value>

                                                                <value>-ic</value>
                                                                <value>ABBYYLossless</value>

                                                                <value>-ido</value>

                                                                <value>-if</value>
                                                                <value>${source}</value>

                                                                <value>-paem</value>
                                                                <value>ImageOnText</value>

                                                                <value>-pafpf</value>
                                                                <value>CCITT4</value>

                                                                <value>-pafpr</value>
                                                                <value>600</value>

                                                                <value>-pafq</value>
                                                                <value>85</value>

                                                                <value>–pdfaWriteTaggedPDF</value>

                                                                <value>-pku</value>

                                                                <value>-f</value>
                                                                <value>PDFA</value>

                                                                <value>-of</value>
                                                                <value>${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>
                <property name="mimetypeLimits">
                    <map>
                        <entry key="image/tiff">
                                <map>
                                        <entry key="application/pdf">
                                                <bean class="org.alfresco.service.cmr.repository.TransformationOptionLimits">
                                              <property name="maxSourceSizeKBytes">
                                                       <value>80000</value>
                                              </property>
                                        </bean>
                                  </entry>
                        </map>
                </entry>
           </map>
        </property>
        </bean>
</beans>

Fehlermeldung:


2013-01-06 22:03:55,342  ERROR [org.alfresco.fileserver] [Sess_FTP0_10.1.3.2] Error from JLAN
java.lang.NullPointerException
        at org.alfresco.repo.content.transform.ProxyContentTransformer.isTransformableMimetype(ProxyContentTransformer.java:64)
        at org.alfresco.repo.content.transform.AbstractContentTransformerLimits.isTransformable(AbstractContentTransformerLimits.java:105)
        at org.alfresco.repo.content.transform.TransformerSelectorImpl.findTransformers(TransformerSelectorImpl.java:60)
        at org.alfresco.repo.content.transform.TransformerSelectorImpl.selectTransformers(TransformerSelectorImpl.java:44)
        at org.alfresco.repo.content.transform.ContentTransformerRegistry.getActiveTransformers(ContentTransformerRegistry.java:117)
        at org.alfresco.repo.content.ContentServiceImpl.getActiveTransformers(ContentServiceImpl.java:1014)
        at org.alfresco.repo.content.ContentServiceImpl.getTransformers(ContentServiceImpl.java:785)
        at org.alfresco.repo.content.ContentServiceImpl.getTransformer(ContentServiceImpl.java:772)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
        at net.sf.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:80)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.alfresco.repo.model.ml.MLContentInterceptor.invoke(MLContentInterceptor.java:125)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke(ExceptionTranslatorMethodInterceptor.java:46)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.alfresco.repo.audit.AuditMethodInterceptor.invoke(AuditMethodInterceptor.java:159)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
        at $Proxy53.getTransformer(Unknown Source)
at org.alfresco.repo.action.executer.TransformActionExecuter.executeImpl(TransformActionExecuter.java:181)
        at org.alfresco.repo.action.executer.ActionExecuterAbstractBase.execute(ActionExecuterAbstractBase.java:241)
        at org.alfresco.repo.action.ActionServiceImpl.directActionExecution(ActionServiceImpl.java:822)
        at org.alfresco.repo.action.executer.CompositeActionExecuter.executeImpl(CompositeActionExecuter.java:66)
        at org.alfresco.repo.action.executer.ActionExecuterAbstractBase.execute(ActionExecuterAbstractBase.java:241)
        at org.alfresco.repo.action.ActionServiceImpl.directActionExecution(ActionServiceImpl.java:822)
        at org.alfresco.repo.action.ActionServiceImpl.executeActionImpl(ActionServiceImpl.java:723)
        at org.alfresco.repo.action.ActionServiceImpl.executeAction(ActionServiceImpl.java:557)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
        at org.alfresco.repo.security.permissions.impl.AlwaysProceedMethodInterceptor.invoke(AlwaysProceedMethodInterceptor.java:34)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke(ExceptionTranslatorMethodInterceptor.java:46)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.alfresco.repo.audit.AuditMethodInterceptor.invoke(AuditMethodInterceptor.java:159)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
        at $Proxy41.executeAction(Unknown Source)
        at org.alfresco.repo.rule.RuleServiceImpl.executeAction(RuleServiceImpl.java:1222)
        at org.alfresco.repo.rule.RuleServiceImpl.executeRule(RuleServiceImpl.java:1216)
        at org.alfresco.repo.rule.RuleServiceImpl.executePendingRule(RuleServiceImpl.java:1163)
        at org.alfresco.repo.rule.RuleServiceImpl.executePendingRulesImpl(RuleServiceImpl.java:1114)
        at org.alfresco.repo.rule.RuleServiceImpl.executePendingRules(RuleServiceImpl.java:1087)
        at org.alfresco.repo.rule.RuleTransactionListener.beforeCommit(RuleTransactionListener.java:57)
        at org.alfresco.repo.transaction.AlfrescoTransactionSupport$TransactionSynchronizationImpl.doBeforeCommit(AlfrescoTransactionSupport.java:735)
        at org.alfresco.repo.transaction.AlfrescoTransactionSupport$TransactionSynchronizationImpl.doBeforeCommit(AlfrescoTransactionSupport.java:715)
        at org.alfresco.repo.transaction.AlfrescoTransactionSupport$TransactionSynchronizationImpl.beforeCommit(AlfrescoTransactionSupport.java:681)
        at org.springframework.transaction.support.TransactionSynchronizationUtils.triggerBeforeCommit(TransactionSynchronizationUtils.java:95)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit(AbstractPlatformTransactionManager.java:927)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:737)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:393)
        at org.alfresco.util.transaction.SpringAwareUserTransaction.commit(SpringAwareUserTransaction.java:472)
        at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:455)
        at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:323)
        at org.alfresco.filesys.repo.CommandExecutorImpl.execute(CommandExecutorImpl.java:103)
        at org.alfresco.filesys.repo.NonTransactionalRuleContentDiskDriver.closeFile(NonTransactionalRuleContentDiskDriver.java:163)
        at org.alfresco.filesys.repo.LegacyFileStateDriver.closeFile(LegacyFileStateDriver.java:315)
        at org.alfresco.filesys.repo.BufferedContentDiskDriver.closeFile(BufferedContentDiskDriver.java:446)
        at org.alfresco.jlan.ftp.FTPSrvSession.procStoreFile(FTPSrvSession.java:2405)
        at org.alfresco.jlan.ftp.FTPSrvSession.run(FTPSrvSession.java:5085)
        at java.lang.Thread.run(Thread.java:722)
2013-01-06 22:03:55,423  DEBUG [content.transform.TransformerDebug] [Sess_FTP0_10.1.3.2] 2           Finished in 0 ms Transformer NOT called

Für einen hilfreichen Tipp wäre ich ausgesprochen dankbar.
Andreas
1 Reply
lotharmärkle
Member II

Re: Imagemagick tiff2pdf transformer deaktivieren

Hi,

der Image-Magick Transformer ist unter die Subsystems gewandert, vielleicht ist dort die Config dazu zu finden (WEB-INF/classes/alfresco/subsystems/…)

Man kann auch eine Transformation festpinnen mit der Option "explicitTransformation" - einfach mal in den spring context xml greppen.

Grüße,
  Lothar