How to communicate from a embedded pdf to the browser - javascript

I have a webpage that has pdf embedded in it, by a object tag.
Now I want to call a javascript method , present in the webpage, from pdf.
Basically, I want to communicate from pdf to browser. Is there a way to do it?

I found the solution myself.
Using a javascript API, hostContainer.postMessage provided by adobe, we can communicate between a hostContainer i.e. a browser and pdf.
For more information please check
http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/js_api_reference.pdf

Related

display the pdf in the same window

there is a requirement where i have to show the pdf in the same window (may be inside the embed/object/iframe).
i am getting the pdf from the service in array buffer format, when i get it i am converting it to blob and generating a temporary src for this using
URL.createObjectURL(file)
I know that createObjectURL is not going to work in IE as it is not allowed there.
now the only option i have left with is to use any third party library like pdf.js to make this thing work.i have tried the same and i had some success in it.But as it comes with the big worker.js library i am trying not to use it for just one thing.
can someone please suggest me if is there any other way of achieving this task?
i have following things or questions in my mind.
host this pdf online and just return the pdf link to the front end(i am not a bakend developer so i dont know if it is possible to host pdf dynamically somewhere in the same domain or at any third party host)
get something equivalent to 'URL.createObjectURL' for explorer and then use object/embed/iframe to show it
render the pdf in a page at server side and just return the whole document to front-end.
try a heavy library like pdf.js and make it work(last option for me)
any other solution which i am not aware of.
thanks in advance for your help.

How to download a webpage developed in AngularJS that renders iframes, as a PDF file?

There is a webpage which uses iframes. The iframes can be used to embed videos(youtube/vimeo), websites(any), documents(.txt and .pdf) , and worksheets from Tableau. The no. of iframes and the content they load is dynamic within the context mentioned in the previous point. Along with the iframes, the webpage has some regular text content and images. How can we download this webpage ensuring we retain its layout and iframe content? (The download feature has to be a part of the webpage we are trying to download which is a part of an application developed in AngularJS.). I have tried using jsPDF and other PDF utilities(https://github.com/hearsid/ng-html-to-pdf-save) but they fail to render the iframe content.
Anyone who has come across a similar problem, please help.
Like
There is one solution is to use wkhtmltopadf, you should install the package in your machine and after that you can use it.
it's a very robust librray that runder vectoriel pdf instaed of other library that runder Bitmap.
Offical web site

Possible to embed javascript in PDF and have it fire when PDF is opened in Browser Window?

Is it possible to embed a piece of javascript in a .pdf doc, and have the script fire when the .pdf is opened in a browser? ... It should not require any user interaction inside the doc (like a click, etc) -- just fire the script when the .pdf is opened in a browser.
I would like to embed some analytics beacons or conversion tracking tags inside .pdfs, if this is possible.
Thanks in advance if you know any possible solutions! :)
Acrobat JavaScript has a method (launchURL()), which would send the message to the URL. You can run the according command in a Document-Level JavaScript (which is embedded in the document, and gets executed when the document opens). More to this method and its implication can be found in the Acrobat JavaScript documentation, which is part of the Acrobat SDK documentation, and downloadable from the developer section of the Adobe website.
However, it requires that the PDF viewing component of the webbrowser supports Acrobat JavaScript. And that limits you pretty much to Acrobat (Reader) using a browser which still supports the Acrobat Browser Plug-in, and the Acrobat Browser Plug-in has to be active. The PDF viewing components built into the browsers are too dumb, and your code will not get executed.
On the plus side, this approach also works when the document is opened outside of a browser; sole condition is that the PDF viewer does support Acrobat JavaScript, and the launchURL() method.
Aside the interesting Acrobat answer of Max, AFAIK it isn't possible to run JavaScript in a PDF without user interaction.
To track these interactions with PDFs in the past, we have instead relied on event clicks on the PDF view link instead.
However, these days consider server side tracking by sending a Measurement Protocol hit when the PDF resource is viewed, ideally taking the same cid from a cookie in the same session.

Possible to add javascript to a PDF to communicate with a parent window?

I am currently trying to find a way so that whenever a Link is selected in a specific PDF file to be able to know which URL it points to and do something based on the selection. I've looked online for pdf libraries such as Adobe Acrobat SDK and the Docotic.Pdf Library by bitmiracle, but haven't been able to find a solution to this. Can a PDF document opened in lets say, an Iframe inside an HTML window, communicate with functions defined in the HTML window? In my case I am not constructing the initial PDF using any pdf creator. My pdf is being converted from a word document and then would be opened using some pdf viewers or similar tools.

Pure JavaScript or jQuery file download function

Using Javascript, I'm trying to establish an appropriate method to display a PDF file in a new browser tab. If the browser doesn't have an in-built PDF viewer, I'd like the user to have the option to download the file. My research has led me to John Culviner's jQuery plugin jquery.fileDownload.js here, and that looks a great fit. The issue I have however is that I don't have access to the web server hosting the site in order to upload the plugin. I've also been unable to find a CDN that hosts the plugin and which I could link to.
Does anyone have a few 'best practice' suggestions to achieve my goals that I can research further? Thank you.
There is no need to involve JS. Just link to the PDF. Use the target attribute to trigger a new tab.
<a href="foo.pdf" target="_blank">
If the server lies about the content-type of the PDF or sends a header that indicates it should be downloaded instead of rendered, then you are out of luck.
If you really want to use JS, then:
window.open('foo.pdf');

Categories