Converting base64 string to PDF in memory

malkishtini at gmail.com malkishtini at gmail.com
Wed Mar 30 12:15:09 UTC 2022


Hi Phil,

Thank you very much for your email and for the options you shared.
You got my requirements correctly.
Right now, I have a JS client with an HTML control that is currently
displaying a pdf doc which I download as a file stream from S3. So no
conversion was need with this solution.
The design should change now to support receiving an encoded base64string
(instead of a file stream) and displaying the response as a PDF in the HTML
control.

I'll investigate both options that you shared below to see if they can
fulfill my need.

Thank you and best regards,
Mayada

-----Original Message-----
From: omnisdev-en <omnisdev-en-bounces at lists.omnis-dev.com> On Behalf Of
Phil (OmnisList)
Sent: Wednesday, March 30, 2022 6:18 AM
To: omnisdev-en at lists.omnis-dev.com
Subject: Re: Converting base64 string to PDF in memory

Hi Mayada,

Following this link, I was trying to understand your requirements...

Do you have, what Omnis calls a HTML control, to display a PDF?

and your query is how to get a base 64 rest API reply into that HTML
control?

If you had such a HTML control, then it would have some method call to set
the contents, which if its under your control, you could make it accept
base64 data.

I'm thinking your meaning something like signature:
https://github.com/OmnisStudio/Omnis-Signature

Which I modified and added methods to for my needs...

indeed there is a PDF object there also, which maybe of help?
https://github.com/OmnisStudio/Omnis-JSPDFDevice

Or, are you talking about some other html control thing?

regards
Phil Potter
Based in Chester in the UK.

On 30/03/2022 03:23, malkishtini at gmail.com wrote:
> Hi Scotte,
>
> Thank you for sharing your idea.
> It is a good one to experiment when using oBrowser in a desktop app.
>
> For now, I need to do the conversion in a JS client (that runs 
> directly in a
> browser) and render the pdf into an Html control.
> But I'll keep your approach in mind in case I can get it to work with 
> the Html control.
>
> Thank you,
> Mayada
>
> -----Original Message-----
> From: omnisdev-en<omnisdev-en-bounces at lists.omnis-dev.com>  On Behalf 
> Of Scotte Meredith
> Sent: Tuesday, March 29, 2022 5:22 PM
> To: OmnisDev List - English<omnisdev-en at lists.omnis-dev.com>
> Subject: Re: Converting base64 string to PDF in memory
>
> Hi, Miyada --
>
> I've only played with this a little, but here is an area to explore.
>
> You can force HTML directly into the oBrowser component using $setdataurl.
>
> Create the html as a string or binary and for the images or PDF you 
> should be able to uuencode it as an in-line image or embedding as you 
> would for a webpage.
>
> Here is an example with simple html, using both the character and 
> binary options.
>
> On a window with an oBrowser component named xBrowser:
>
> Calculate ibnURL as chartoutf8('<html><body><p>Something
> here</p></body></html>') Do
> $cinst.$objs.xBrowser.$setdataurl(ibnURL,'text/html')
> ## or
> Calculate icURL as '<html><body><p>Something here</p></body></html>'
> Do $cinst.$objs.xBrowser.$setdataurl(icURL,'text/html')
>
>
>> On Mar 29, 2022, at 10:52 AM,malkishtini at gmail.com  wrote:
>>
>> Hi Andrew,
>> Thank you for your feedback.
>> I'm afraid that we might end up doing the same thing if we cannot 
>> find another solution in Omnis.
>>
>> I was wondering if Brainy data has a plug in to help with this 
>> conversion, as we do use their driver to create the pdf in memory.
>>
>> We found a way to do the conversion in Javascript, 
>> https://base64.guru/developers/javascript/examples/decode-pdf, but 
>> not sure yet how to make this work with the JS client and the html
object.
>> Need to do more digging.
>>
>> Thank you & best regards,
>> Mayada
>>
>> -----Original Message-----
>> From: omnisdev-en<omnisdev-en-bounces at lists.omnis-dev.com>  On Behalf 
>> Of Andrew Stolarz
>> Sent: Tuesday, March 29, 2022 12:41 PM
>> To: OmnisDev List - English<omnisdev-en at lists.omnis-dev.com>
>> Subject: Re: Converting base64 string to PDF in memory
>>
>> Mayada,
>>
>> I was looking to do something similar a number of years ago. It's my 
>> understanding that with the JS client, you need to save the PDF to 
>> disk before being able to display it in a JS form.
>>
>> We ended up placing the PDF's into a temp location and cleared them 
>> out after.
>>
>>
>> Andrew
>>
>>
>> On Tue, Mar 29, 2022 at 11:24 AM<malkishtini at gmail.com>  wrote:
>>
>>> Hello $list,
>>>
>>> I have a project to convert a base64 string (which I get from an 
>>> external REST API) to a PDF and display in a JS form without saving 
>>> any file to a disk (i.e., convert it to a PDF in memory and display 
>>> it in an HTML object in the JS form (Studio 8.1.7)).
>>> I have not done this before, so the first thing I thought about was 
>>> to post a question to the list to see if anyone has done something 
>>> similar before and could kindly share some ideas with me.
>>>
>>> Thank you in advance for any hints/thoughts.
>>>
>>> Best regards,
>>> Mayada
>>>
>>>
>>>
>>> _____________________________________________________________
>>> Manage your list subscriptions athttps://lists.omnis-dev.com  Start 
>>> a new message ->mailto:omnisdev-en at lists.omnis-dev.com
>>>
>> _____________________________________________________________
>> Manage your list subscriptions athttps://lists.omnis-dev.com  Start a 
>> new message ->mailto:omnisdev-en at lists.omnis-dev.com
>>
>> _____________________________________________________________
>> Manage your list subscriptions athttps://lists.omnis-dev.com  Start a 
>> new message ->mailto:omnisdev-en at lists.omnis-dev.com
>
>
> Scotte Meredith
> spomacguy at gmail.com
> 509/998-0991
>
>
>
>
> _____________________________________________________________
> Manage your list subscriptions athttps://lists.omnis-dev.com  Start a 
> new message ->mailto:omnisdev-en at lists.omnis-dev.com
>
> _____________________________________________________________
> Manage your list subscriptions athttps://lists.omnis-dev.com Start a 
> new message ->mailto:omnisdev-en at lists.omnis-dev.com
_____________________________________________________________
Manage your list subscriptions at https://lists.omnis-dev.com Start a new
message -> mailto:omnisdev-en at lists.omnis-dev.com 



More information about the omnisdev-en mailing list