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 ); |
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 |
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. |
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.