Question

I am working on a web application which allows users to review pdf documents. These documents are submitted from another public facing website. A typical workflow involves:

  1. A document is uploaded on the public facing website and stored into document management system (DMS).
  2. The internal web application grabs the document from the shared DMS and shows it to the user.
  3. The user of the web application downloads this pdf to his local file system.
  4. He adds some markups/annotations/comments on the pdf.
  5. The reviewed document is submitted to the application, which processes the document and presents the corrections to the user who submitted the document on the website.

We were using a cloud service for manipulating the pdfs until now, so there was no problem accessing the reviewed pdf, as the API handled that. But some of the customers are having issues storing the pdfs on the cloud, so I need to implement a local solution.

My question is, how can my web-application know when the user has finished reviewing the document (which will probably be a save event), so it can fetch the document for processing. As far as I know, the server doesn't know anything about, and cannot access the local file system.

I can probably force the user to upload the reviewed document on the application, and that would make my life easy. But, from a usability point of view, and for a consistent user experience with the cloud solution; which allowed the communication on "save" event, I would like to have something similar, i.e. when the user hits save after reviewing, my application would like to grab the document for further processing.

I am not sure if there is a way around the server trying to access the local file system.

Note: It's an on-premise, enterprise web-application.

TL;DR: My web-application server would like to know when a document is saved locally, and grab that document.

Was it helpful?

Solution

If your users want to use a local application like Adobe Acrobat for editing the PDF files, there is no way around forcing them to upload the reviewed document. For well-known reasons of security, browsers cannot access or monitor the local file system directly (except within their sandbox, which has a local storage restriction of approx. 5MB), and everything which goes from and to the local file system requires an interactive acknowledgement from the user.

The only idea which could work in theory is to find a separate PDF editing component written in Javascript, directly as a web component, something like PDF.JS (which is only a PDF viewer), but for annotating PDF files. Such a component needs to hold the full PDF in main memory, without any server required for the edit process. I have no idea if something like that exists, you have to search for yourself, (or ask on https://softwarerecs.stackexchange.com/).

Licensed under: CC-BY-SA with attribution
scroll top