Generowanie raportu doc/docx z użyciem szablonu

Generowanie raportu doc/docx z użyciem szablonu
tj4java
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 3 lata
  • Postów:39
0

Poszukuje fajnego rozwiązania, które pozwoli mi generować dokument na bazie szablonu z danymi z modelu. Znalazłem pewne rozwiązanie (z użyciem Apache POI), niestety w miejsce znaczników (np. ${value}) zamienia ten tekst, ale pozbawia go oryginalnego formatowania. W razie czego rozwinę, uszczegółowię. Chodzi o coś co pozwoli także stosować pętle. Dobrym przykładem byłby jakiś raport lub cv, gdzie byłyby oznaczenia tagami gdzie pojawić się na wartość z modelu. Apache POI nie jest konieczne, może być z użyciem innej biblioteki. Może ktoś ma w zanadrzu coś sprawdzonego.

Spine
  • Rejestracja:około 22 lata
  • Ostatnio:około 3 godziny
  • Postów:6666
2

https://www.npmjs.com/package/docxtemplater

Możesz do swojego projektu Javy dołączyć jakiś shell JavaScript ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Shells ) i odpalać na nim tego templatera.


🕹️⌨️🖥️🖱️🎮
edytowany 1x, ostatnio: Spine
purrll
  • Rejestracja:około 5 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Kuala Lumpur
  • Postów:241
1

Korzystałem bardzo dawno temu z Docx4j - https://github.com/plutext/docx4j
Nie jestem pewien na 100% czy spełnia Twoje założenia ale warto zerknąć. Masz jeszcze szybki artykuł w formie introduction - https://www.baeldung.com/docx4j


tj4java
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 3 lata
  • Postów:39
0

Dziękuję za propozycje. Skupię się na Docx4j.

aolo23
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:186
1

Używałem w pracy Docx4j, ale im dalej w las to tym więcej problemów z bardziej zaawansowanym ustawianiem/dostosywaniem wszrelakich rzeczy
Dlatego wybór padł na : https://products.aspose.com/


Exception oznacza więcej niż tysiąc słów.
tj4java
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 3 lata
  • Postów:39
0

Też znalazłem Aspose i niestety to płatne, prawda? Postawiłem w swoim projekcie na dynamiczne generowanie dokumentu z POI. Efekt jest wystarczający. Template stanowi tylko strona tytułowa z logiem firmy (choć w POI można też grafikę wstawiać).

purrll
  • Rejestracja:około 5 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Kuala Lumpur
  • Postów:241
1
tj4java napisał(a):

Też znalazłem Aspose i niestety to płatne, prawda? Postawiłem w swoim projekcie na dynamiczne generowanie dokumentu z POI. Efekt jest wystarczający. Template stanowi tylko strona tytułowa z logiem firmy (choć w POI można też grafikę wstawiać).

Aspose to jest g*wno straszne. Kosztuje majątek, a generuje tak dużo problemów, że kupienie tego bez supportu = wyrzucenie kasy w błoto. Wiem co mówię, bo u mnie geniusze kupili to cudo bez supportu :-)


aolo23
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:186
0
purrll napisał(a):

Aspose to jest g*wno straszne. Kosztuje majątek, a generuje tak dużo problemów, że kupienie tego bez supportu = wyrzucenie kasy w błoto. Wiem co mówię, bo u mnie geniusze kupili to cudo bez supportu :-)

  1. Trzeba sprawdzić jak się sprawdza konkretna opcja produktu (w zależności co chcesz robić ) na licencji testowej. (nie ukrywam że z licencji testowej przez dekompilację 1 klasy, wyrzucenie 1 funkcji i ponownej kompilacji można zrobić full wersję , ale nie będe do tego zachęcał jeśli to coś do pracy, a nie do testów )
  2. Suport jest zarówno płatny i nie płatny - przez forum dość sprawnie odpisują (sam zgłosiłem z 3 bugi - ale za każdym razem dali mi zastępcze rozwiązanie )
  3. W porównaniu POI i DOCX do exportu danych do MSWorda to nie porównania - poi i docx połowy rzeczy nie wspiera. Dla mnie naistotniejsze jest wsparcie dla plikow SVG.
    Ale to jak mówię trzeba wiedzieć do czego będzie potrzebne dane narzędzie i w jak szerokim zakresie.
  4. Poświęcenie 2-3ch dni na przeczytanie dokumentacji rozwiązuje 95% problemów.
  5. Trudność pisania i komponowania nowych elementow w POI i docx jest nieporównywanie większa w zestawieniu do aspose, ponieważ w aspose jest to bardziej naturalne. Co innego jak się widzi klasy w POI typu XDSRA xdsra = new ...

Exception oznacza więcej niż tysiąc słów.
edytowany 3x, ostatnio: aolo23
purrll
  • Rejestracja:około 5 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Kuala Lumpur
  • Postów:241
2

@aolo23: Panie.

  • Nie ja jestem programistą tej aplikacji
  • Nie ja wybrałem bibliotekę
  • Nie ja mam z nią problemy
  • Nie mi wywala połowę funkcjonalności aplikacji w której większość funkcjonalności opiera się o dokumenty
  • Nie ja nie potrafię usiąść do dokumentacji i przeczytać
  • Nie ja wyrzeźbiłem to g*wno z którym są teraz problemy
  • Ja tylko restartuję kontenerki :-)

Widzę, że ktoś ma problemy i daję znać dalej. Fakt, że zespół programistów nie jest zbyt górnolotny ale cóż Pan zrobisz jak nic Pan nie zrobisz.


aolo23
Cóż ciekawe podejście ;)
purrll
@aolo23: Moja rola jest inna więc się nie mieszam ;-)
nowyworek
  • Rejestracja:prawie 5 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:świat
  • Postów:174
1

Zrób sobie osobny mikroserwis z docxtemplaterem w nodzie i wal do niego z javy. Cała reszta tutaj jest bardzo słabo udokumetowana albo płatna


Julian
edytowany 1x, ostatnio: nowyworek

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.