为什么我的转换脚本没有在第一个文件之外的任何上传文件上运行?
我在 Alfresco 中设置了一个监听文件夹的转换规则。当一个新文件被放入文件夹时,该规则会触发一个脚本运行,该脚本获取一个没有文本层的 PDF,将其分解为 jpeg,对 jpeg 进行 OCR,然后将 jpeg 转换为 PDF 并合并 PDF,返回一个 OCRed PDF然后使用文本层将结果复制到另一个文件夹中,这样我们就知道它已经完成了。
在命令行运行脚本有效。我第一次将文件放入 Alfresco 文件夹(上传)时,它会运行脚本并复制文件。但是任何后续我将文件放入文件夹时,脚本都不会运行,但文件仍会复制到目标文件夹。所以我知道正在调用规则,但脚本似乎没有在以下文件上运行。我已经登录了脚本,所以我知道脚本甚至没有被调用。该规则将应用于文件夹中所有新的和修改的文件,没有过滤器。然后它使用我们的自定义 OCR 脚本运行转换和复制命令,并将目标文件夹定义为父文件夹。
下面是我的露天改造扩展:
<?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.PdfOCRTool" class="org.alfresco.repo.content.transform.RuntimeExecutableContentTransformerWorker">
<property name="mimetypeService">
<ref bean="mimetypeService"/>
</property>
<property name="transformCommand">
<bean name="transformer.pdftoocr.Command" class="org.alfresco.util.exec.RuntimeExec">
<property name="commandMap">
<map>
<entry key=".*">
<value>/opt/ocr/ocr.sh ${source} ${target}</value>
</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>application/pdf</value>
</property>
<property name="targetMimetype">
<value>application/pdf</value>
</property>
</bean>
</list>
</property>
</bean>
<bean id="transformer.proxy.PdfOCRTool" class="org.alfresco.repo.management.subsystems.SubsystemProxyFactory">
<property name="sourceApplicationContextFactory">
<ref bean="thirdparty"/>
</property>
<property name="sourceBeanName">
<value>transformer.worker.PdfOCRTool</value>
</property>
<property name="interfaces">
<list>
<value>org.alfresco.repo.content.transform.ContentTransformerWorker</value>
</list>
</property>
</bean>
<bean id="transformer.PdfOCRTool" class="org.alfresco.repo.content.transform.ProxyContentTransformer" parent="baseContentTransformer">
<property name="worker">
<ref bean="transformer.proxy.PdfOCRTool"/>
</property>
</bean>
</beans>