Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 20 Next »

Generowanie PDF z rozpoznawaniem tabel.

Z WordTemplateService ZALECANE

Przykład
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'.

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

Jeśli po wstawieniu dokumentu potrzebne jest ustawienie wartości indeksów lub ustawienie opisu dokumentu to wystarczy dla tego celu dla danej klasy dokumentów ustawić w archiwum odpowiednią akcję. W tym przypadku akcję ze źródłem akcji 'Dodanie nowego dokumentu z poziomu procesu' i typem akcji 'Przepisanie indeksów z procesu do dokumentów' lub 'Uruchomienie skryptu'. Więcej szczegółów można znaleźć tu.

Bezpośrednio z PrepeareDoc NIE ZALECANE

Nie zalecane

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

Przykład uruchomienia :

Przykład z podłączeniem do archiwum i procesu
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 );

Nie używać

Nie wstawiać do 'mOptionalParameters' parametrów variablesMarker, whichTables, whichHeaders. Technicznie można je podać, ale wstawienie albo zmiana wartości domyślnej skutkuje niepoprawnym działaniem np. nie zostaną poprawnie rozpoznane tabele lub zmienne i dokument nie zostanie poprawnie wygenerowany.

Można używać parametrów documentDescription, documentIndices i pageNumbers. Opis parametrów jest aktualny w dokumentacji.

Generowanie PDF bez rozpoznawania tabel. NIE ZALECANE

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.

Nie zalecane

Ten sposób nie jest już zalecany. Został zachowany wraz z poniższą dokumentacją tylko dla zgodności wstecznej.
Jeśli konieczne jest wywołanie generowania w Java, to zalecane korzystanie z WordTemplateService.

Przykład uruchomienia :

Przykład z podłaczeniem do archiwum i procesu
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.
Parametr 'variablesMarker' domyślnie przyjmuje wartość @, jednak w przypadku zmiany na inny też działa ok. Jednak nie ma takiej potrzeby, bo zmienne powinny zostać poprawnie rozpoznane dla domyślnego ustawienia nawet jeśli znak @ jest używany w treści szablonu.

 

  • No labels