【问题标题】:how to integrate an image trasformer to alfresco如何将图像转换器集成到 alfresco
【发布时间】:2016-02-19 14:33:23
【问题描述】:

我在 Alfresco 中使用了一个 tesseract 转换器,以使 TIFF 图像可搜索。我找到了很多关于这个的教程,我在我的 Alfresco 上试过,但它不起作用。

这里是示例tesseract integration

我正在使用 Alfresco Enterprise v5.0.2

好像transformer没有集成,我上传了tiff图片但是没有搜索到结果。 如何检查变压器是否应用?

【问题讨论】:

  • 您是否在代码中添加了一些调试跟踪?你如何检查变压器是否被调用?您还可以设置调试包 org.alfresco.repo.content.transform 的日志记录级别
  • Alfresco 5.0.2 仅捆绑 Apache Tika 1.6。 Tesseract support was added in Tika in Tika 1.7。所以,你要么需要自己做反向移植,要么让 Alfresco 为你做一个
  • @Gagravarr 如果我没记错的话,似乎是他使用的是在命令行上执行的外部工具,因此不需要使用嵌入式 Tika。
  • @MarcoAltieri 我认为 OP 想使用 Alfresco 链接到 Tika,然后使用 Tika 链接到 Tesseract。该 Tika 链接仅在 Tika 1.7 中提供,因此他们需要升级他们的 Tika 版本,或者手动添加一个跳过 Tika 的 Alfresco-Tesseract 转换器
  • @Gagravarr他关注的那篇文章是2013年写的。我没有检查过那篇文章中描述的解决方案是否正确,但在我看来它只是执行一个批处理命令。

标签: ocr alfresco tesseract


【解决方案1】:

安装测试 OCR: 从 (https://code.google.com/p/tesseract-ocr/downloads/list) 下载 tesseract 并通过双击 tesseract-ocr-setup-3.02.02.exe 进行安装。

在系统“C:\Program Files (x86)\Tesseract-OCR”中安装tesseract后,将使用已安装的Tesseract OCR创建路径。

在 ALFRESCO 中进行的更改 要添加的文件。 1)OCR.bat2)ocrpng-transform-context.xml3)ocrjpeg-transform-context.xml4)ocrtiff-transform-context.xml5)alfresco-tesseract-search.jar6)ocrtransform.log 1)OCR.bat

REM to see what happens
echo from %1 to %2 >>C:\tmp\ocrtransform.log


copy /Y %1 C:\TMP\%~n1%~x1

REM  call tesseract and redirect output to $TARGET
"C:\Program Files (x86)\Tesseract-OCR\tesseract.exe" C:\TMP\%~n1%~x1 %~d2%~p2%~n2 -l eng
del C:\TMP\%~n1%~x1

此批处理脚本将放置在您的 alfresco 路径“C:\Alfresco”中

此批处理脚本会将上传的文件发送到 Tesseract ocr 进行实际的 OCR,将日志复制到 ocrtransform.log,Tesseract OCR 将内容发送到 alfresco,我们可以更改上述文件中默认给定 eng 的实际语言,我们可以为此提供多种语言。

这些是转换xml将被添加到“C:\Alfresco\tomcat\shared\classes\alfresco\extension”

2)ocrpng-transform-context.xml

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans default-lazy-init="false" default-autowire="no" default-dependency-check="none">
  <bean id="transformer.worker.ocr.jpeg" class="org.alfresco.repo.content.transform.RuntimeExecutableContentTransformerWorker" lazy-init="default" autowire="default" dependency-check="default">
    <property name="mimetypeService">
      <ref bean="mimetypeService" />
    </property>
    <property name="checkCommand">
      <bean class="org.alfresco.util.exec.RuntimeExec" lazy-init="default" autowire="default" dependency-check="default">
        <property name="commandsAndArguments">
          <map>
            <entry key="Windows.*">
              <list>
                <value>C:\Windows\System32\cmd.exe</value>
  <value>/C</value>
  <value>dir c:\Alfresco\ocr.bat</value>
              </list>
            </entry>
          </map>
        </property>
        <property name="errorCodes">
          <value>1</value>
        </property>
      </bean>
    </property>
    <property name="transformCommand">
      <bean class="org.alfresco.util.exec.RuntimeExec" lazy-init="default" autowire="default" dependency-check="default">
        <property name="commandsAndArguments">
          <map>
            <entry key="Windows.*">
              <list>
                <value>C:\Windows\System32\cmd.exe</value>
  <value>/C</value>
  <value>C:\Alfresco\ocr.bat</value>
                <value>"${source}"</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" lazy-init="default" autowire="default" dependency-check="default">
          <property name="sourceMimetype">
            <value>image/png</value>
          </property>
          <property name="targetMimetype">
            <value>text/plain</value>
          </property>
        </bean>
      </list>
    </property>
  </bean>
  <bean id="transformer.ocr.jpeg" class="org.alfresco.repo.content.transform.ProxyContentTransformer" parent="baseContentTransformer" lazy-init="default" autowire="default" dependency-check="default">
    <property name="worker">
      <ref bean="transformer.worker.ocr.jpeg" />
    </property>
  </bean>
</beans>

3)ocrjpeg-transform-context.xml

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans default-lazy-init="false" default-autowire="no" default-dependency-check="none">
  <bean id="transformer.worker.ocr.tiff" class="org.alfresco.repo.content.transform.RuntimeExecutableContentTransformerWorker" lazy-init="default" autowire="default" dependency-check="default">
    <property name="mimetypeService">
      <ref bean="mimetypeService" />
    </property>
    <property name="checkCommand">
      <bean class="org.alfresco.util.exec.RuntimeExec" lazy-init="default" autowire="default" dependency-check="default">
        <property name="commandsAndArguments">
          <map>
            <entry key="Windows.*">
              <list>
                <value>C:\Windows\System32\cmd.exe</value>
  <value>/C</value>
  <value>dir c:\Alfresco\ocr.bat</value>
              </list>
            </entry>
          </map>
        </property>
        <property name="errorCodes">
          <value>1</value>
        </property>
      </bean>
    </property>
    <property name="transformCommand">
      <bean class="org.alfresco.util.exec.RuntimeExec" lazy-init="default" autowire="default" dependency-check="default">
        <property name="commandsAndArguments">
          <map>
            <entry key="Windows.*">
              <list>
                <value>C:\Windows\System32\cmd.exe</value>
    <value>/C</value>
    <value>C:\Alfresco\ocr.bat</value>
                <value>"${source}"</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" lazy-init="default" autowire="default" dependency-check="default">
          <property name="sourceMimetype">
            <value>image/jpeg</value>
          </property>
          <property name="targetMimetype">
            <value>text/plain</value>
          </property>
        </bean>


      </list>
    </property>
  </bean>
  <bean id="transformer.ocr.tiff" class="org.alfresco.repo.content.transform.ProxyContentTransformer" parent="baseContentTransformer" lazy-init="default" autowire="default" dependency-check="default">
    <property name="worker">
      <ref bean="transformer.worker.ocr.tiff" />
    </property>
  </bean>
</beans>

4)ocrtiff-transform-context.xml

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans default-lazy-init="false" default-autowire="no" default-dependency-check="none">
  <bean id="transformer.worker.ocr.tiff" class="org.alfresco.repo.content.transform.RuntimeExecutableContentTransformerWorker" lazy-init="default" autowire="default" dependency-check="default">
    <property name="mimetypeService">
      <ref bean="mimetypeService" />
    </property>
    <property name="checkCommand">
      <bean class="org.alfresco.util.exec.RuntimeExec" lazy-init="default" autowire="default" dependency-check="default">
        <property name="commandsAndArguments">
          <map>
            <entry key="Windows.*">
              <list>
                <value>C:\Windows\System32\cmd.exe</value>
  <value>/C</value>
  <value>dir c:\Alfresco\ocr.bat</value>
              </list>
            </entry>
          </map>
        </property>
        <property name="errorCodes">
          <value>1</value>
        </property>
      </bean>
    </property>
    <property name="transformCommand">
      <bean class="org.alfresco.util.exec.RuntimeExec" lazy-init="default" autowire="default" dependency-check="default">
        <property name="commandsAndArguments">
          <map>
            <entry key="Windows.*">
              <list>
                <value>C:\Windows\System32\cmd.exe</value>
  <value>/C</value>
  <value>C:\Alfresco\ocr.bat</value>
                <value>"${source}"</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" lazy-init="default" autowire="default" dependency-check="default">
          <property name="sourceMimetype">
            <value>image/tiff</value>
          </property>
          <property name="targetMimetype">
            <value>text/plain</value>
          </property>
        </bean>


      </list>
    </property>
  </bean>
  <bean id="transformer.ocr.tiff" class="org.alfresco.repo.content.transform.ProxyContentTransformer" parent="baseContentTransformer" lazy-init="default" autowire="default" dependency-check="default">
    <property name="worker">
      <ref bean="transformer.worker.ocr.tiff" />
    </property>
  </bean>

</beans>

这些都是我们可以写任何不的转换文件。基于要使用 Tesseract 进行 OCR 的文件的类型格式。

5)alfresco-tesseract-search.jar 从这个链接下载这个罐子([https://docs.google.com/file/d/0B94FD2QmPSJCNHpuUVlicW95UjA/edit)][1] 并将这个 jar 放在这个路径“C:\Alfresco\tomcat\lib”中。 6)ocrtransform.log 在 "C:\TMP" 中使用 ocrtransform.log 创建一个空文件名

然后重启露天

然后上传一个图片格式的文件,图片的内容会在alfresco中被索引,这样我们就可以搜索文件的内容了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-20
    • 1970-01-01
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    • 2014-12-10
    • 2018-09-27
    • 2023-03-09
    相关资源
    最近更新 更多