Generowanie PDF z rozpoznawaniem tabel.

Z WordTemplateService

String templateName = "Przykładowy szablon" ;
WordTemplateService wordTemplateService = SpringContext.getBean( WordTemplateService.class );
File outputFile = TemporaryFile.create();
            
wordTemplateService.generateForProcess( outputFile, templateName, processId, OutputFormat.PDF );

Analogicznie można też użyć wordTemplateService.generateForActivity, aby generować z kontekstu zadania.
Zarówno do wordTemplateService.generateForProcess i wordTemplateService.generateForProcess są też warianty do których można dołożyć mapę z dodatkowymi danymi, które mają być brane do generowania poza kontekstem procesu/zadania.

Wygenerowany pdf można podłączyć do procesu i archiwum za pomocą 'WordTemplateUtil'.

String archiveDocumentClassName = "Przykładowa klasa";
WfDocument wfDoc = WordTemplateUtil.archiveAndAttachToProcess( outputFile, processId, activityId, archiveDocumentClassName, templateName, OutputFormat.PDF, true, false );

Bezpośrednio z PrepeareDoc

Jeśli konieczne jest wywołanie generowania w Java, to zalecane korzystanie z WordTemplateService.

Przykład uruchomienia :

DocumentTemplateService templateService = ServiceFactory.getDocumentTemplateService();
DocumentTemplateTable template = templateService.getByName( "Przykładowy szablon" );
String templatePath = template.getTemplatePath();
String archiveDocumentClassName = "Przykładowa klasa";
Map<String, Object> mOptionalParameters = null;
            
PrepeareDoc.createPdfAndSaveInArchive( templatePath, archiveDocumentClassName, processId, mOptionalParameters );

Jak powinien być poprawnie zbudowany szablon aby poprawnie zostały rozpoznane tabele jest opisane tu

Generowanie PDF bez rozpoznawania tabel.

Ten sposób wymaga jawnego podania informacji o użytych w szablonie tabelach, nie potrafi rozpoznać czy poszczególne tabele są statyczne czy dynamiczne.
Dynamiczna tabela to taka gdzie ilość rekordów nie jest znana i za każdym razem może być inna.

Ten sposób nie jest już zalecany. Został zachowany wraz z poniższą dokumentacją tylko dla zgodności wstecznej.
Zaleca się używanie alternatywnych sposobów z rozpoznawaniem tabel z JS API, WordTemplateTask, WordTemplate lub ew. Java API.

Przykład uruchomienia :

Map<String, Object> mOptionalParameters = new HashMap<String, Object>();
//pierwsze dwie tabele statyczne, trzecia dynamiczna
mOptionalParameters.put( "whichTables", Arrays.asList( false, false, true ));
            
PrepeareDoc.createPdfAndSaveInArchive( templatePath, archiveDocumentClassName, processId, mOptionalParameters );

W 'mOptionalParameters' wymagany jest parametr 'whichTables', pozostałe parametry są opcjonalne.
Opis parametrów jest aktualny w dokumentacji.