Eine der wichtigsten Funktion der Nuxeo Platform ist die Indexierung von Textinhalten von Dateien. Natürlich erwarten Kunden dies auch für Office-Dateien, und die Plattform kann genau dies auch für Media Assets bereitstellen, die typischerweise viel Text enthalten: Adobe Illustrator- (.ai-) und Encapsulated PostScript- (.eps-) Dateien. Das beste an der ganzen Sache ist, dass diese Funktion in Nuxeo Studio in wenigen Minuten konfiguriert ist!

Die Indexierung von Textinhalten aus .ai- und .eps-Dateien erfolgt in zwei Schritten. Konvertieren Sie die Datei zunächst mit Ghostscript in eine PDF-Datei und extrahieren Sie dann den Textinhalt aus dem PDF. Ghostscript ist bereits Teil der externen Tools, die von der Plattform verwendet werden, es sind also keine zusätzlichen Installationsschritte erforderlich. Sie müssen lediglich einige Befehlszeilen und Konverter mit Studio konfigurieren.

Beginnen wir mit der Befehlszeile. Die Nuxeo Platform stellt einen Ausführungsdienst für Befehlszeilen bereit, wir müssen also nur einen neuen Befehl mit der folgenden XML Contribution registrieren

<extension point="command" target="org.nuxeo.ecm.platform.commandline.executor.service.CommandLineExecutorComponent">
  <command enabled="true" name="ps2pdf">
        <commandLine>gs</commandLine>
       <winCommand>gswin64c</winCommand>
       <parameterString>-dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=#{targetFilePath} #{sourceFilePath}</parameterString>
        <installationDirective>You need to install GhostScript.</installationDirective>
  </command>
</extension>

Sobald dies erfolgt ist, können wir einen Konverter registrieren, der die vorherigen Befehle verwendet.

<extension point="converter" target="org.nuxeo.ecm.core.convert.service.ConversionServiceImpl">

  <converter class="org.nuxeo.ecm.platform.convert.plugins.CommandLineConverter" name="psi2pdf">
    <sourceMimeType>application/postscript</sourceMimeType>
    <sourceMimeType>application/eps</sourceMimeType>
    <sourceMimeType>application/x-eps</sourceMimeType>
    <sourceMimeType>image/eps</sourceMimeType>
    <sourceMimeType>image/x-eps</sourceMimeType>
    <sourceMimeType>application/illustrator</sourceMimeType>
    <destinationMimeType>application/pdf</destinationMimeType>
    <parameters>
        <parameter name="CommandLineName">ps2pdf</parameter>
    </parameters>
  </converter>
 </extension>

Zuletzt nutzen wir eine relativ unbekannte Funktion des Konvertierungsdiensts der Nuxeo Platform, mit der die Verkettung von Unterkonvertern möglich ist. Wir verwenden den vorher definierten Konverter und verketten ihn mit dem pdf2text-Konverter, der bereits in der Plattform registriert ist.

<extension point="converter" target="org.nuxeo.ecm.core.convert.service.ConversionServiceImpl"> 
 <converter name="ps2pdf2text">
      <sourceMimeType>application/postscript</sourceMimeType>
      <sourceMimeType>application/eps</sourceMimeType>
      <sourceMimeType>application/x-eps</sourceMimeType>
      <sourceMimeType>image/eps</sourceMimeType>
      <sourceMimeType>image/x-eps</sourceMimeType>
      <sourceMimeType>application/illustrator</sourceMimeType>
      <destinationMimeType>text/plain</destinationMimeType>
      <conversionSteps>
        <subconverter>ps2pdf</subconverter>
        <subconverter>pdf2text</subconverter>
      </conversionSteps>
  </converter>
</extension>

Woher weiß die Plattform, dass sie den Textinhalt von Dateien indexieren muss? Sie benötigt lediglich einen Konverter für die Quelldatei des Mimetyps, der Text unformatiert zurückgibt. Die Plattform verwendet diesen, um den Textinhalt zu extrahieren und zu indexieren.


Textinhalt
Suche nach Textinhalt

Das ist die gesamte Konfiguration. Ihre Anwendung kann jetzt Textinhalte aus Adobe Illustrator- und Encapsulated PostScript- Dateien indexieren!