cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Suni
Helper I
Helper I

Generate a pdf out of a sharepoint-list (PowerApps for audit)

Hello,
I am building a small PowerApp for a work safety audit. It is using a SharePoint-List as 'database' and I read/write out of that. I can pick an item from the list in my app and start the audit. After starting it, the user has to answer ~40 questions (No defect/defect/not relevant) with the additional option to put a text to explain the defect. The app is writing the answerers into the row of the chosen item. As Example, the first 10 columns of each row contains informations about the item (name,location,construction year, etc.) after that, I am using three columns for each question (relevant yes/no, defect yes/no, text). So for the audit for item 4 the app will write the answer to question one into the field 4/11, 4/12, 4/13. Question 2 is 4/14, 4/15, 4/16.

After this long explanation:
I need to generate a pdf to save the audit. A co-worker told me, its not possible to make a pdf out of the Sharepoint list and I should use excel as a database instead. I am learning PowerApps by doing, and I am by far not a master at it. Is it possible to generate a pdf after finishing the audit in the way I do it right now? If so, how complicated is it? I am not looking for a working solution that I just copy and paste. I just need a general idea if its even possible and maybe a hint where to go.
Thank you so much for every help and advice!

15 REPLIES 15
efialttes
Super User
Super User

Hi!

THis old post from John Liu explains how to generate a PDF file from HTML, so this is almos exactly what you are looking for, i.e. if you manage to give your text into an HTML format it should work.

http://johnliu.net/blog/2017/10/generate-any-pdf-documents-from-html-with-flow

There is another technique by using Word templates as explained here:

https://flow.microsoft.com/en-us/blog/intermediate-flow-of-the-week-create-pdf-invoices-using-word-t...

Finally, I haven't tested myself so not sure this will work but... You can also try to enter text in a compose and use it as input to 'Convert file using path' in order to generate your PDF

 

Hop this helps



Each time you click on any of our inspiring answers 'Thumb up' icon...
...an ewok scapes from the stormtroopers.

Be grateful, Thumbs up! Save the Galaxy for free!


Escribo sobre Power Automate en:
https://medium.com/anyone-can-automate/

Proud to be a Flownaut!



fchopo
Super User
Super User

Hello @Suni 

You could get the items from sharepoint, create a HTML Table from that info, and save it into a file, to finally convert it to PDF. Have a look at this example: 

Flow_OneDrive_PDF.png

When creating the HTML table, it can be created automatically or custom, where you define the columns you want in the table (in this case, I created a table with 3 columns (expense date, amount and title)). After that, a file name "Export.html" is created, and finally exported to PDF.

Hope it helps!

Ferran

Did I answer your question? Please consider to mark my post as a solution to help others.
Proud to be a Flownaut!

Thank you @fchopo !

I will follow your tips and try if it works for me!

 

-How complex is it for someone with no experience in html and flows?

-I am working with .selected in my PowerApp to write into the right row within my Sharepoint list. If I select to check the item "test4" in row 4, the answeres to the survy will go into row 4 as well. Can I build a button, that will take the infos out of the row I am working with at the moment and use the selected row for the pdf?

 

Thank you for your help!

@fchopo I tried doing this but getting the following error for the create HTML table.  Not sure how to fix this.  Any words of wisdom?

 

BadRequest. The 'from' property value in the 'table' action inputs is of type 'Null'. The value must be of type 'Array'.

Hello @DCNehs 

Is the SharePoint list you are querying empty? I've tried with a list with some sample data and it's working.

Did I answer your question? Please consider to mark my post as a solution to help others.
Proud to be a Flownaut!

@fchopo there are at least 60 list items

Could you share your flow?

Did I answer your question? Please consider to mark my post as a solution to help others.
Proud to be a Flownaut!

@fchopo converttopdf.jpg

 
 
 

Hi
You are using 'Get item' instead of 'Get items'
Hope this helps


Each time you click on any of our inspiring answers 'Thumb up' icon...
...an ewok scapes from the stormtroopers.

Be grateful, Thumbs up! Save the Galaxy for free!


Escribo sobre Power Automate en:
https://medium.com/anyone-can-automate/

Proud to be a Flownaut!



@efialttes I tried using Get Items and received the error mentioned so I then tried Get Item which reacted the same way.

RobElliott
Super User
Super User

This should work for you (and is from a live PowerApps form and flow at my company). The audit form is in Power Apps:

0-PowerApps-form.png

 

I'm not passing the saved data through Power Automate but saving the data directly to the SharePoint list using the Patch function. 

But we can get the data in the flow which starts with a SharePoint When an item is created trigger. 

That is followed by Get items as the first action with a filter query of Title eq '{Title}' with the title column selected from the dynamic content. This is so we are only bringing back the item we want which can then be used in the Create HTML table.

Next, add the Create HTML Table action with the From field selected with value from the dynamic content:

1-trigger-getItems-createHTML.png

Particularly if I'm send the table by email I then format it with a Compose control but this step can be omitted:

2-composeFormatHTML.png

Next we add a OneDrive for Business Create file action, select the folder path and give it a name and I've used the Title column (Job number) as that is unique.

The next action is to a OneDrive for Business Convert file. Select the Id from the Create file section of the dynamic content and leave the Target type as PDF.

Finally, add a SharePoint Create file action, select the document library where the file will be saved and select File name and File Content from the Convert file section of dynamic content.

3-create-Convert-create.png

The flow runs successfully:
4-successfulFlow.png

 And as well as the item stored in the list you also have the PDF of the data stored in a separate Documents library:

5-resultPDF.png

Rob
Los Gallardos
If I've answered your question or solved your problem, please mark this question as answered. This helps others who have the same question find a solution quickly via the forum search. If you liked my response, please consider giving it a thumbs up. Thanks.

Hello @DCNehs 

 

As @efialttes said, I think you should used "Get Items" instead of "Get Item". You shared the following error:

BadRequest. The 'from' property value in the 'table' action inputs is of type 'Null'. The value must be of type 'Array'.

 

This means that either the "Get Items" or "Get Item" actions are returning no results. Try again with "Get Items" and let us know.

Ferran

Did I answer your question? Please consider to mark my post as a solution to help others.
Proud to be a Flownaut!

@fchopo still same error as first time i used Get Items.  I'll try something else.  I actually don't want to pull several list items so I don't think this is right for what we are trying to do anyway.  Just want to create a nice PDF of the form for  specific ones as they get completed.   I'll try Shane Young's approach again.  It would be so much easier if we had a premium license and then wouldn't have to try to use so many more difficult work arounds.

@DCNehs  vave you tried the solution I gave a couple of posts back?

Rob
Los Gallardos

@RobElliott I have not.  It's a bit more complicated for someone that is newer to this, but I'll add it to the list of things to try until I am successful at creating something that works for their needs.

Helpful resources

Announcements
UG GA Amplification 768x460.png

Launching new user group features

Learn how to create your own user groups today!

Community Connections 768x460.jpg

Community & How To Videos

Check out the new Power Platform Community Connections gallery!

M365 768x460.jpg

Microsoft 365 Collaboration Conference | December 7–9, 2021

Join us, in-person, December 7–9 in Las Vegas, for the largest gathering of the Microsoft community in the world.

Top Solution Authors
Top Kudoed Authors
Users online (1,229)