Может ли Java POI записать изображение в текстовый документ? - PullRequest
2 голосов
/ 24 сентября 2008

Кто-нибудь знает, возможно ли это? И есть пример кода для этого? Или любой другой API Java, который может сделать это?

Ответы [ 8 ]

1 голос
/ 26 июля 2010

Конечно:

Взгляните на это: http://code.google.com/p/java2word

Word 2004+ основан на XML. Приведенный выше фреймворк получает изображение, конвертирует его в представление Base64 и добавляет его в XML. Когда вы откроете документ Word, появится ваше изображение.

Просто так:

    IDocument myDoc = new Document2004();   
    myDoc.getBody().addEle("path/myImage.png"));

Java2Word - это один API для создания документов Word с использованием явно Java-кода. J2W заботится обо всей реализации и генерации XML за кулисами.

1 голос
/ 27 марта 2009

Если вы используете docx, вы можете попробовать docx4j.

См. Образец AddImage

1 голос
/ 24 сентября 2008

Как уже говорили другие, POI не позволит вам сделать что-то действительно интересное - плюс он не поддерживает форматы Office 2007+. Рассмотрение MS Word как компонента, обеспечивающего этот тип функциональности через COM, является наиболее подходящим подходом здесь (если вы не работаете в ОС, отличной от Windows, или просто не можете гарантировать, что Word будет установлен на машине). *

Если вы идете по COM-маршруту, я рекомендую вам заглянуть в проект JACOB . Вам нужно быть знакомым с COM (у которого очень крутая кривая обучения), но библиотека работает довольно хорошо и проще, чем пытаться делать это в нативном коде с помощью JNI-оболочки.

1 голос
/ 24 сентября 2008

Формат Office 2007 основан на XML и поэтому, вероятно, может быть записан с использованием инструментов XML. Однако есть эта библиотека , которая утверждает, что может писать документы в формате DocX.

Единственная другая альтернатива - использовать Java-COM Bridge и COM для манипулирования словом. Это, вероятно, не очень хорошая идея - я бы предложил найти более простой способ.

Например, Word может легко читать документы RTF, а вы можете создавать документы .rtf из Java. Вам не нужно использовать формат Microsoft Word!

0 голосов
/ 14 апреля 2009

JasperReports использует этот API в качестве альтернативы POI, потому что он поддерживает изображения:
JExcelAPI

Я еще не пробовал и не знаю, насколько это хорошо / плохо.

0 голосов
/ 24 сентября 2008

Не уверен, что Java из коробки может сделать это напрямую. Но я читал о компоненте, который в значительной степени может сделать что-либо с точки зрения автоматизации создания документа Word без Word. Aspose Words

0 голосов
/ 24 сентября 2008

HWPF POI может извлекать текст документа MS Word и выполнять простые модификации (в основном удаление и вставка текста). AFAIK это не может сделать намного больше, чем это. Также имейте в виду, что HWPF работает только с более старым форматом MS Word (97), а не с последними.

0 голосов
/ 24 сентября 2008

Насколько можно собрать с сайта проекта : нет.

...