首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >阅读pdf文件

阅读pdf文件
EN

Stack Overflow用户
提问于 2014-07-02 11:23:47
回答 2查看 708关注 0票数 1

我向alfresco添加了一个UI操作,它将nodeRef作为我正在尝试读取内容的参数

代码语言:javascript
运行
复制
contentService.getReader(nodeRef, ContentModel.TYPE_CONTENT).getContentString()

但它只处理.txt文件,而不是.pdf、.xlsx、.docx .例如,当我试图读取一个pdf文件时,它会让我:

代码语言:javascript
运行
复制
S#?_#3C??  R/Metadata 64 0 R/OCProperties<</D<</Order[]/R .....

用word文档和它的数字。

有解决办法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-03 08:02:53

实际上,阿尔弗雷科有自己的阅读器、转换器和所有工作人员,所以我用这段代码从任何内容中阅读,它就能工作了。

代码语言:javascript
运行
复制
ContentReader reader = contentService.getReader(nodeRef, ContentModel.PROP_CONTENT);
       String content="";
        if (reader != null && reader.exists())
        {
                // get the transformer
                ContentTransformer transformer = contentService.getTransformer(reader.getMimetype(), MimetypeMap.MIMETYPE_TEXT_PLAIN);
                // is this transformer good enough?
                if (transformer != null)
                {
                    // We have a transformer that is fast enough
                    ContentWriter writer = contentService.getTempWriter();
                    writer.setMimetype(MimetypeMap.MIMETYPE_TEXT_PLAIN);

                    try
                    {
                        transformer.transform(reader, writer);
                        // point the reader to the new-written content
                        reader = writer.getReader();
                        // Check that the reader is a view onto something concrete
                        if (!reader.exists())
                        {
                            logging(new ContentIOException("The transformation did not write any content, yet: \n"
                                    + "   transformer:     " + transformer + "\n" + "   temp writer:     " + writer+"")+"");

                            throw new ContentIOException("The transformation did not write any content, yet: \n"
                                    + "   transformer:     " + transformer + "\n" + "   temp writer:     " + writer);

                        }else {
                               content = reader.getContentString();
                               logging("------------------------------------------------------------");
                               logging(content);
                        }
                    }
                    catch (ContentIOException e)
                    {


                    }
                }
            }
票数 1
EN

Stack Overflow用户

发布于 2014-07-02 16:41:18

是。试一试contentService.getReader(nodeRef, ContentModel.TYPE_CONTENT).getContentInputStream()。如果需要找到特定的文本,请将流中的数据输入PDF库,并使用其API访问内容。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24529859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档