Tracking through PDF - pdf

I am exporting a document as a PDF. It is kept on a publicly accessibly website so that any users can download and read it. Now I want to track this. e.g. "How many times the PDF got opened."
Note that my question is not to track while I download, we need to track when the PDF is opened. Is there any kind of script that is invoked when the PDF is opened so that Adobe Acrobat Reader sends the details to my server?
These are the details I would like:
IP
Date/Time
Possbilly GEO Location.

Yes, you can probably do this. PDF includes a Javascript API, which some (but not all) PDF readers implement. I'm only certain of Acrobat and Foxit Reader doing this, and it can be turned off in both, for security and privacy reasons. That said, it's probably your best shot.
I glanced through the Javascript for Acrobat API Reference, and it looks like you could register for the "Page/Open" event (page 368 in my copy), and on receiving the first one of those, make a Net.HTTP call (page 548) to a web server you're running. That will get you the date/time and the public IP of the client reading the document, from which you can get a geolocation using a service like GeoIP.

I'm not sure this is possible. Although PDF can execute Javascript, reader software is naturally paranoid about malware being embedded in "benign" documents, so the execution context is quite restricted, with warnings shown about possible dangerous activity.
See previous SO question Can my PDF ping my server when it is opened?

Related

How can multiple users simultaneously edit an Adobe Acrobat PDF?

Is it possible for multiple users to simultaneously add call-outs, comments, and text boxes to a PDF in Adobe Acrobat? We have a PDF printout of a web portal that has been marked up by our supervising engineer--three of us will be addressing the markups at the same time (there are a lot of markups).
Anytime a markup is addressed, we will be adding an Addressed call-out or adding a sticky note to explain in detail the changes that were made. To prevent overlap, we would like to simultaneously edit the PDF so we see each other's Addressed markups.
This feature is available in BlueBeam Revu; however our office does not carry any BlueBeam licenses.
You can use "Send for Shared Commenting" using Adobe Acrobat Pro DC then Reader users can participate. When hosted on a compatible server... like a webDAV server or SharePoint, multiple users can comment at the same time. The comments will synchronize automatically or you can trigger it to sync manually. Everyone will see everyone else's comments and can reply to them.

Streaming large PDFs from SharePoint

I have a client that wants to store large PDFs (>700MB) on SharePoint 2013. The problem is that viewing the PDF is currently requiring the entire PDF to be download before displaying the first page. I need the browser to display each page of the PDF as it downloads, a feature I believe Adobe calls "Fast Web View" or "Byte Streaming". Here is what I know:
"Fast Web View" is enabled on the PDF document in the Document Properties window.
I can verify that the PDF is "Linearized" by reading the ASCII content.
I have checked the PDF reading options from the PDF Accessibility.
The client has SharePoint 2013 on premise installed.
SharePoint's File Handling is set to permissive.
I have verified PDF is an AllowedInlinedownedMinme type of the Web Application.
Anything else I should check or configure?
It is not enough if the PDF files are linearized (technical term in PDF parlance) or optimized for fast web view (marketing term for that feature).
There need to be two conditions met before taking advantage of fast web view working for the end user:
The PDF viewer needs to be able to make use of the linearized/optimized PDF file features.
The PDF serving remote host (in this case SharePoint) needs to be properly configured to honor 'byte range requests' by the viewer, so downloading chunks of the PDF file may be delivered "out of order".
However,...
...I do not know if SharePoint servers in general do support the second requirement;
...if SharePoint is not the problem, you may want to check which PDF viewer is actually in use in that environment (test it with Adobe Reader -- that one takes advantage of linearized PDF features for sure).
See also this answer to a question from today, which gives a few more technical details:
How are PDF files able to be partially displayed while downloading?
A co-worker identified the problem after comparing the download from SharePoint to that of a working site using WireShark. The SharePoint site didn't include "Byte ranging" in the response headers. In order to enable that feature in SharePoint, you have to enable BlobCache. Beware, BlobCache is not supported in SharePoint foundations.

How to check if an email attachment has been opened

I am working on a study that sends people a PDF document with information about their health. The team would like to know if the person has actually opened the PDF document (a sign that they didn't just ignore the e-mail). I know that it'd be possible to do it with a link to an external file, but the users are much less likely to click on a URL and download it then they are to just view an attachment, and we don't want to do anything that might prevent the users from reading the information (we've already had people say they never received the message, and with further investigation they discovered they had, they had just ignored it).
Another option is to request a read report, but this is only useful if it doesn't annoy the user (ie it does it automatically when the email is opened instead of requesting them to send one). We're currently looking into this as well, but the ability to check if the attachment has been opened is a much better idea.
The email is generated in MS SQL and sent using the database mail system, and we have adobe acrobat pro, so creating scripts in pdfs is possible (although I'm not sure whether those scripts will be allowed to run).
Thanks
1) Dont include the PDF in the email, include a link to the PDF.
or
2) Include a javascript snippet in the PDF, which hits a per-user URL or includes IP address or something to track. This will only work if the user allows javascript, and if their pdf reader supports it.
See
http://ask.metafilter.com/153206/Is-it-possible-to-track-where-a-PDF-file-goes-once-in-the-wild
Since this was originally posted there has been a number of consumer tools that now let you track PDF's sent via a web link.
http://docsend.com , http://attach.io
and if you're sharing from Dropbox
http://orangedox.com
Much easier than having to script it yourself
At this time there are a number of tools available who offer attachment tracking service to their users. I am also using SalesHandy for attachment tracking and get the deep analysis of when & where your attachment is open.
Click to read more: https://www.saleshandy.com/document-tracking/

Embedding PDF documents into websites

I need to embed some PDF documents into a website. The last time I did this, I used a jQuery lightbox to popup an iFrame with the PDF document as the URL. The client's PDF viewer would then take care of the rest.
Apparently though, that was a bit buggy on some other peoples browsers. I guess it was due to the large PDF file sizes and the effort it took for their computers to fire up Adobe.
So I'm after ideas on how to go about this. How do you guys embed your PDF's into websites? Or do you just stick to adding a download link?
I often use scribd to solve this issue.
You have to upload your document (can be PDF, DOC or something else) to your scribd account and the service makes it possible to view this (pdf) document in a flash environment (perfectly embedabble with lightbox).
For this solution, a third party service (scribd) is required for your documents, but with their API it's possible to include all scribd functionality in your own website.
We have used Docuter
They let you embed and track
I've used Google Docs in Flash: http://trajctrl.tyblu.ca/?page_id=2
It's a bit buggy, but I find it works if you wiggle the image a bit - ie: zoom, click, etc. Download link is nearby just in case, too. Not exactly sure how it was done, as its a Wordpress plugin (Google Doc Embedder), but I imagine Google has an API somewhere.

How to process values entered into an interactive PDF form on the server?

A client is asking how to create an interactive PDF form with functionality that allows the values entered into the form to be processed on the server.
From what I've read, the best way to do this is to program the submission by embedding javascript into the PDF file via Acrobat, then writing code on the server side to handle the submission.
Does anyone have experience doing this sort of thing? Is the best way to do this indeed by using javascript in the pdf file and using that to post the form values to the server-side form processing method?
If you do that, is there any way to pass back values to the PDF file that the form processed successfully?
We have used the DynamicPDF viewer from ceTE software.
http://www.cete.com/
If the requirement is just to pull data out of PDF form fields, Javascript may not necessarily be required. Javascript can certainly be used with form fields to handle certain requirements (oftentimes auto-calculation and validation), but it might be overkill for just setting and getting data.
There are APIs that will set and get data from PDF form fields pretty easily. One toolkit that does so is EasyPDF SDK, which has a PDFDocument class designed for exactly this:
http://www.pdfonline.com/easypdf/epsdk_manual/index.htm?page=reference%2Fpdfdocumentsdk%2Fpdfdocument%2Fdescription.htm
Whether it will work for your needs will depend largely on whether the PDF has already been created or not. If it's already been created with fillable form fields, then EasyPDF SDK can be used to read data from the fields and insert data into them. But if you don't have the PDF template created yet, then you'd need Adobe tools like Acrobat Professional to do that first.
I will disclaim that I am part of the engineering team for EasyPDF SDK, so I have a vested interest in the tool. But it's nifty and easy to use, and is geared for server side deployment, so feel free to check it out at http://www.pdfonline.com if you feel so inclined. Hope this helps.