Adding utilities to snaplogic to generate pdf files (from an html input document)?

I’m wondering if it is possible to add utilities to snaplogic to support scripting. Specifically I’m looking for something to help write dynamically generated (via xslt) html into a pdf file , basically to get a pretty print data output to our sftp server.

There seem to be a lot of options out there for python or javascript
Python Convert Html to PDF: Python Convert Html to PDF - GeeksforGeeks
PSPDFKit : How to Generate a PDF with JavaScript | PSPDFKit

Or via an api like pdfcrowd: HTML to PDF HTTP based API | Pdfcrowd

Also, if anyone has worked with these or similar products your advice would be most welcome.

Followup to my own question: I’m playing around with pdfcrowd, and able to get back pdf content from them on an http post. Unfortunately, the response causes and error. Can snaplogic handle this type of content somehow?

Which snap are you using to call it and how exactly are you configuring it?

Patrick,
Thanks for your response. I’m using a REST Post with service url, upload file, and headers defined (attached)

AC pdfcrowd test pipeline_2021_03_23.slp (9.0 KB)

I can share my account information if you need it

Patrick,
I was able to get a valid response - I simply changed my response entity type to Binary

image

I will continue with my prototyping, but I think this is going to be a great solution!

Thanks. I’m trying to understand a few things about your solution.

For the Upload File, you have “HTTP entity” = $html, but I don’t see how that would evaluate to anything valid.

Actually, it works with the Upload File row removed, and with nothing for “Single file upload: File key”.

I got it to work with the “url” option of the conversion service. Pretty cool!

1 Like

I would say, however, that this is a bit of a hack, in that you have to (1) Add an HTTP Header for Content-Type = application/x-www-form-urlencoded, and (2) set the HTTP Entity to a string using application/x-www-form-urlencoded that you’re responsible for encoding yourself. In this case, it’s pretty simple since that string is just one key/value pair and there’s no special characters that need to be escaped. I think we need more direct support in the REST Post snap for this encoding. The “Upload body type” should include an option corresponding to this content type and the snap should automatically build a properly-encoded string from the input entity if it’s an object (it could just encode that object’s key/value pairs).

1 Like