Apache POI lub docx4j do obsługi dokumentów docx [zamknięty]

Co według ciebie jest lepsze do odczytu dokumentu docx jako obiektów java i dlaczego ?

Innymi słowy. która biblioteka obsługuje większość tagów słów?

Author: becks, 2013-02-22

4 answers

Ujawnienie: prowadzę projekt docx4j

Chociaż docx4j może również obsługiwać pptx i xlsx, jest głównie używany do manipulacji docx. Na przykład, jak w momencie pisania tego tekstu, na docx4j forum jest prawie 1000 tematów. Forum pptx ma tylko 10% wolumenu.

Cokolwiek chcesz zrobić z dokumentem docx, docx4j powinien ci pomóc. Istnieje przegląd pojedynczej strony ogólnego przepływu pracy.

Dla wielu wspólnych wymagania, docx4j zapewnia wyższy poziom API. Należą do nich:

  • Utwórz/Otwórz / Zapisz docx (oczywiście)

  • Generowanie raportów/dokumentów przy użyciu różnych metod: (i) zmienna w 2011 roku firma Mailmerge wprowadziła do swojej oferty nową wersję programu Mailmerge.]}

  • Eksportuj jako HTML, XHTML

  • Eksportuj jako PDF (z obsługą czcionek)

Dla czegokolwiek innego, można manipulować JAXB reprezentacji docx do swojego serce jest zadowolone. JAXB jest standardem Java community, zawartym w Javie 6 i z silną alternatywną implementacją w Moxy EclipseLink. (POI używa XML Beans zamiast JAXB)

Istnieje Aplikacja internetowa , która pomoże Ci odkrywać docx i generować kod Java, aby utworzyć odpowiednie obiekty Java.

Oczywiście, jeśli masz na myśli jakieś konkretne zadanie, może być tak, że docx4j lub POI ma tam szczególną siłę.

Zarówno docx4j jak i POI są ASL v2 licencjonowany.

Docx4j jest aktywnie utrzymywany; jego kod źródłowy jest na Githubie .

Ponadto, wsparcie komercyjne jest dostępne dla docx4j, jeśli chcesz, podobnie jak kilka komercyjnych rozszerzeń np MergeDocx .

Docx4j opiera się na POI jako bibliotece dla jego implementacji złożonego formatu dokumentu OLE 2, za co jesteśmy wdzięczni.

 20
Author: JasonPlutext,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-16 13:13:19

Myślę, że Apache POI koncentruje się głównie na radzeniu sobie z arkuszami kalkulacyjnymi, chociaż mam funkcje do czytania dokumentów Worda i wykorzystuje do tego fasolę xml. Docx4j zajmuje się głównie dokumentami docx wykorzystującymi jaxb. Zazwyczaj JAXB pozwala XML do java obiekt konwersji stąd myślę, że docx4j byłoby lepsze dla Twojego przypadku.

 2
Author: Mohamed Makthum,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-21 23:58:02

Próbowałem Apache POI, ale problem polega na tym, że podczas drukowania czegokolwiek z pliku docx (np. aby wydrukować wszystkie elementy" Heading1 " z docx), drukuje się wiele złych danych i spacji. Docx4j uniknie tych złych danych, próbowałem.

 2
Author: Venkatesh Dhanasekaran,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-15 08:54:12

Jeśli masz do czynienia z dokumentem docx, docx4j jest wygodniejszy niż Apache POI. Możesz użyć poniższych linków, aby nauczyć się podstaw docx4j. istnieje również fajne forum docx4j.

1.http://blog.iprofs.nl/2012/09/06/creating-word-documents-with-docx4j / 2.http://www.smartjava.org/content/create-complex-word-docx-documents-programatically-docx4j?

 2
Author: lycaenidae,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-04 12:22:57