0

我在研究一个jsf的网络共享项目。在这个项目中,用户可以上传.doc、.pdf、.ppt、..etc等文件。我想将此文档的首页显示为缩略图。经过一番谷歌搜索后,我找到了 Apache POI。有人对我的问题有什么建议吗?如何返回 word doc 第一页的缩略图?我试试这段代码。这段代码只是得到了word doc包含的第一张图片:

        POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("d:\\test.doc"));
        HWPFDocument doc = new HWPFDocument(fs);
        PicturesTable pt=doc.getPicturesTable();
        List<Picture> p=pt.getAllPictures();
        BufferedImage image=ImageIO.read(new ByteArrayInputStream(p.get(0).getContent()));
        ImageIO.write(image, "JPG", new File("d:\\test.jpg"));
4

1 回答 1

0

你在做什么什么都没有。HWPFDocument 可以提取嵌入在文档中的缩略图(保存文件时,选中“添加预览”选项)。因此 HWPFDocument 只能提取具有缩略图的文档的缩略图。

甚至,要做到这一点,您必须制作:{code}

static byte[] process(File docFile) throws Exception {
    final HWPFDocumentCore wordDocument = AbstractWordUtils.loadDoc(docFile);
    SummaryInformation summaryInformation = wordDocument.getSummaryInformation();
    System.out.println(summaryInformation.getAuthor());
    System.out.println(summaryInformation.getApplicationName() + ":" + summaryInformation.getTitle());
    Thumbnail thumbnail = new Thumbnail(summaryInformation.getThumbnail());
    System.out.println(thumbnail.getClipboardFormat());
    System.out.println(thumbnail.getClipboardFormatTag());
    return thumbnail.getThumbnailAsWMF();
}

{code} 之后,您可能必须将 WMF 文件格式转换为更常见的格式(jpeg、png...)。ImageMagick 可以提供帮助。

于 2014-02-21T09:42:28.413 回答