我有PDF文档,其中包含扫描文档的几张图像/页面。它们(OCR生产的)文本内容包含在单独的XML文件中。

是否可以以某种方式使用/链接从XML的文本内容到我的PDF文件? (理想情况下,存储库中不会剩下其他文件来混淆不知道的用户。)

正如我被告知,文本属性有65K的限制,因此我不能简单地将文本内容放入该属性中,因为PDF很容易超过该限制。

已经提出了将文本内容传递给我的PDF文件的CM:内容属性的流。我有点迷失在这里,因为IMO意味着我要么提供参考,要么我再次分配了巨大的字符串。第一个意味着文本内容必须作为单独的文档保存在某个地方。后来的听起来好像我会再次达到65k的限制。
我认为设置CM:内容可能会删除PDF内容本身。我需要PDF二进制数据才能保持不变。

这是 建议正在讨论. 。无论如何,我目前正在尝试。

有帮助吗?

解决方案 2

实现我需要的另一种方法是使用contentservice设置my_text_content_property ...

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

(重要的是将内容放置 设置了模拟型和编码。否则,内容/属性无法搜索。)

使用这种方法,无需隐藏链接的文本文档,没有任何内容。

其他提示

Soo,实际上很容易……需要做的是定义文档中“ D:content”类型的属性;我通过一个方面做到这一点...

model.xml:

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

然后,当我同时在存储库中具有PDF及其文本表示形式时,我通过添加该方面并填充属性来链接这两者...

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

现在可以通过以下查询找到PDF,即使它不包含任何文本数据...

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

后来也暗示 这里, ,我想这就是Alfresco Web客户端中的常规搜索工作方式,因为现在可以使用常规搜索输入到达PDF。
但是有一个问题:搜索吐出PDF文档以及我使用该属性链接的文档。因此,现在我需要以后隐藏搜索结果...

(如预期的那样,使用第一个查询搜索时仅找到PDF;但是这种方法对我几乎没有用。)

希望它可以节省一些时间到其他Alfresco-Newbies。 :)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top