Comment lier son document numérisé avec le contenu du texte pour le rendre consultable?

StackOverflow https://stackoverflow.com/questions/3912885

  •  29-09-2019
  •  | 
  •  

Question

J'ai des documents PDF contenant plusieurs images / pages de documents numérisés. Leur contenu texte (OCR-produit) est dans des fichiers XML séparés.

Est-il possible d'utiliser / lier le contenu du texte de XML en quelque sorte à mes fichiers PDF? (Idéalement il n'y aurait pas des fichiers supplémentaires laissés dans le référentiel pour dérouter les utilisateurs ignorent.)

Comme je l'ai été dit il y a 65k limite sur une propriété de texte, je ne peux donc pas tout simplement le contenu du texte dans une propriété sur le, comme PDF pourrait facilement dépasser cette limite.

Une suggestion a été fait passer un flux avec le contenu du texte à cm: propriété contenu de mon fichier PDF. Je suis un peu perdu ici, comme l'OMI qui signifie que soit je fournir une référence ou j'assignant à nouveau chaîne énorme. La première signifierait le contenu du texte doit être conservé quelque part dans un document distinct. Les sons plus tard comme je frapperaient à nouveau la limite 65k.
Je pense aussi mise en cm: le contenu serait probablement supprimer le contenu PDF lui-même. J'ai besoin des données binaires PDF pour rester intact.

est où est discuté la suggestion . J'essaie actuellement que de toute façon.

Était-ce utile?

La solution 2

Une autre façon d'obtenir ce que je dois établirions MY_TEXT_CONTENT_PROPERTY en utilisant contentService ...

ContentWriter writer = getContentService().getWriter(pdfNodeRef, MyModel.MY_TEXT_CONTENT_PROPERTY, true);
writer.setMimetype("text/plain");
writer.setEncoding("UTF-8");
writer.putContent(stringFromXmlDescription); // the source XML gets thrown away

(La chose importante semble être de mettre le contenu après mimetype et l'encodage sont définies. Sinon, le contenu / propriété n'est pas consultable.)

Avec cette approche, il n'y a pas besoin de se cacher les documents texte liés, il n'y en a pas.

Autres conseils

Soo, il est assez facile ... Ce qui doit être fait est de définir une propriété de type « d: le contenu » sur votre document; Je le fais par un aspect ...

model.xml:

<aspects>
    <aspect name="mm:my_aspect">
...
            <property name="mm:myTextContentProperty">
                <type>d:content</type>
            </property>
        </properties>
    </aspect>
</aspects>

Alors, quand j'ai PDF et sa représentation de texte dans le référentiel, je relier ces deux en ajoutant l'aspect et peuplant la propriété ...

getNodeService().addAspect(pdfNodeRef, myAspect, null);
getNodeService().setProperty(pdfNodeRef, MyModel.MY_TEXT_CONTENT_PROPERTY, new ContentData("store://....bin", "text/plain", size, "UTF-8"));

Maintenant, le PDF peut être trouvé par les deux requêtes suivantes, même si elle ne contient pas de données texte ...

"@\\{http\\://mymodel.ns/content/1.0\\}myTextContentProperty:\"" + string + "\""
"TEXT:\"" + string + "\""

Le est également laissé entendre plus tard , et je suppose que comment la recherche régulière Web fonctionne client Alfresco, parce que maintenant le PDF est accessible en utilisant l'entrée de recherche régulière.
Il y a un problème cependant: la recherche recrache le document PDF et aussi le document que je lien en utilisant la propriété. Alors maintenant, je dois cacher la suite des résultats de recherche ...

(Lors de la recherche en utilisant la première requête que le PDF se trouve, comme prévu,., Mais cette approche est de peu d'utilité pour moi)

Espérons que cela permet d'économiser un peu de temps à d'autres Alfresco-newbies. :)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top