2010-03-04 2 views
2

Есть ли у кого-нибудь опыт слияния с Java в текстовом документе? Мне нужно поддерживать форматы doc и docx.Слияние почты с Java

Я слышал об Apache POI и docx4j. Однако, начиная с чтения, я уверен, насколько хорошо поддержка слов в POI. Насколько мне известно, docx4j поддерживает только формат docx.

Можно ли предложить любой из приведенных выше (и исправить мои знания по поддержке) или другую соответствующую библиотеку. При необходимости я хотел бы использовать один lib для doc и другой для docx.

Спасибо.

ответ

3

Работа с документами MS Word очень сложна. Формат DOC очень сложный, DOCX в теории проще, но он довольно новый, и нет никакой зрелой, богатой функциональностью библиотеки Java для работы с ней и DOC.

Простые решения большинства проблем, связанных с работой с документами MS Office, описаны в Joel Spolsky article. Надеюсь, вы сможете использовать этот метод в своем приложении.

+0

Спасибо, пытаясь использовать API Open Office, я вынужден согласиться с этой статьей. –

1

Посмотрите на OpenOffice, чтобы увидеть [вручную], может ли он создавать типы файлов, которые вам нужны. Просто загрузите некоторые документы и сохраните некоторые документы и версии docx. Если результаты пройдут эти простые ручные тесты, то Docmosis или JODReports могут автоматизировать это с Java.

+0

+1 Использование LibreOffice для преобразования doc в docx может работать достаточно хорошо для вас. Затем в Java вы можете работать исключительно с docx. – JasonPlutext

2

Docx4j имеет класс MailMerger. Он работает, но в этом процессе удаляется много форматирования.

+0

Должно быть лучше в эти дни .. – JasonPlutext

1

Если вы открыты для несвободных решений, Aspose предлагает, среди прочего, очень сложный Java API for mail merging.

0

Мне было нужно что-то похожее и создали простой проект, который позволяет выполнять слияние текстового документа и данных из файла Excel/CSV.

Вы можете найти его на https://github.com/centic9/poi-mail-merge, возможно, он уже предоставляет то, что вам нужно здесь, иначе мы надеемся легко добавить дополнительные функции.