Hi there,
I would like to ask if and how can I create a document (like pdf for example) from an embedded task form.
Does anyone know please if Camunda supports this capability ?
Thanks in advance,
Steve
Hi there,
I would like to ask if and how can I create a document (like pdf for example) from an embedded task form.
Does anyone know please if Camunda supports this capability ?
Thanks in advance,
Steve
Hi @steftriant,
do you want to create a PDF from data you provided or just upload a file using embedded forms?
KR
Martin
Hi @martin.stamm and thanks for your feedback.
I simply want to create a pdf with the data I provided in the task form.
In the last stage of my process, one user receives a list of products and he can see this list in his taskform in Tasklist. I would like to generate a document which provides the same list.
Is this supported by some way in Camunda ?
Thank you,
Steve
camunda itself does not offer this capability, but this can be achieved in 2 ways:
Create the PDF in a separate Task and include a cam-file-download
object
Dynamically create the PDF in the form. jsPDF looks like it offers what you want to achieve. Include it as a custom script in Tasklist and you’re good to go.
@martin.stamm, ok I 'm going to take a look as far as your 2nd hint is concerned.
About the 1st one, can I look somewhere in Docs ?
Which of these 2 ways do you recommend ?
Thanks,
Steve
You can use a Service Task for option 1.
If you do not need the PDF for the rest of your process, you can create it in the Frontend. This also scales better than a service task.
@martin.stamm, I need the pdf for the rest of my process, so I assume that if I select your 1st option here, I must do this via a Service Task.
But I would like to ask what do you mean by saying that I can create it in the Frontend ?
Thanks,
Steve
In that case I recommend using a service task.
Basically option 2, your process would not know about the PDF because it is generated in the browser
Hi @martin.stamm,
So, from your hints here, I assume that the dynamic creation of the PDF in the form (your 2nd option above) isn’t so convenient in my case.
Could you please make clear to me what do you mean here ?
Basically option 2, your process would not know about the PDF because it is generated in the browser
What I want to do, is to simply send the generated pdf via email (so it could be done out of the process’s scope) and by this way my process is completed.
Could you please give me a hint (by Docs) about the creation of a document via a Service Task ?
Thank you a lot,
Steve
Hi @steftriant,
You need to generate the PDF with a service task then
A Service Task can execute arbitrary Java code. You can use a java library to generate your code, for example itext. There are many others.
Hi @martin.stamm,
In your opinion, which implementation way is the easiest for a user like me (with very little experience in programming) ?
By calling Java code or in the form of an external task ?
Thanks a lot,
Steve
Hi @steftriant,
As you want to send the PDF via email, you will have to create it by calling Java code.
There should not be much difference in complexity in my opinion.
KR
Hi again @martin.stamm,
My exact purpose is to produce a pdf document (with iText library maybe) from an html task form like the following:
This task form is displayed when the user loads his form in “Receive the Selected Products” User Task:
So, I don’t want to create an empty pdf document but to convert the above html form.
Must I do sth before the conversion (such as to get the task form in the form of a file by REST API call for example) ?
Thanks a lot,
Steve
Hi @steftriant and sorry for the delay,
I’m not sure if I understood you use-case correctly.
Do you want the User of Tasklist to download the PDF or send it as an email via an automated task?
KR
Martin
Hi @martin.stamm and thanks for your interest,
What I want to achieve is the following:
On the submission of a user task form (like my above screenshot here), to automatically create and download a pdf document with the same data as included in the task form. Something like conversion for example.
The pdf document will be sending (by email) outside of process by the user.
Thank you again,
Steven
Thanks for the clarification.
That can be achieved with a JS library like jspdf. There is an example on how to use it here.
This will not need a Java Task and can be done in your embedded form alone.
You can include the library as a custom script and use it in your embedded forms.
Let me know if you need help getting the custom script to work correctly
Hi @martin.stamm,
It looks like a dynamic creation and download of the pdf document from the html form.
I’m going to read thoroughly your suggested links here and I will let you know of course in any case.
Thanks a lot,
Steve
Hi again @martin.stamm,
I’ve been reading your suggested way here but I have some questions:
Many thanks,
Steve
Hi @steftriant,
All your questions come down to the custom scripts, so I’ll guide you through that first:
You download the libraries and place them in the app/tasklist/scripts
directory of your webapp. Then you add them in the app/tasklist/scripts/config.js
. Here is an example how you would add JQuery:
customScripts: {
ngDeps: [], // can be left empty
deps: ['jQuery'], // The variable which you use to reference the library
paths: {
'jQuery': 'scripts/jquery-XXX' // The filename without .js
}
}
The library is then available for use in Tasklist and embedded forms. You might need to do a hard refresh (ctrl+F5 in chrome) to see the changes.
If this does not solve your question, let me know.
KR
Martin
Hi @martin.stamm. jspdf downloaded library includes the following: