最初のファイル以外にアップロードされたファイルで変換スクリプトが実行されないのはなぜですか?
フォルダーをリッスンする変換ルールを 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>