I have a Drupal site which I plan on putting a print pdf function to its contents. How do I manage this so that only paid users can print the pdf?


If you mean controlling who can view/download (i.e. be 'served') the PDF then you need to read up on the private file system (Working with files contains a pretty good introduction).

If you mean showing the PDF to anyone who requests it, but only allowing paid users to print from it, you can't. That would be controlling a user's browser, which you can't do for obvious security reasons. It's the nature of the web; if you want to distribute content, you have to face the fact that it can be copied unless you go down the DRM route.

The only DRM solution I know of for PDFs is Adobe Content Server; it's written in Java and is a real pain in the proverbial but it does work. You can control the number of times a person can print or even copy/paste data from the PDF.

It does introduce a really annoying workflow, though, that you'll need to explain in detail to your users; and it ain't cheap.

| improve this answer | |
  • i found this Printer, Email, and PDF module can i just use this and put permission on drupal to which user can print the pdf? Does Drupal supports that kind of permission? – Belmark Caday Apr 19 '13 at 14:57
  • 1
    @Clive, actually, there is a built-in DRM-feature of Adobe's PDF-format that let you show the PDF to everyone, but that will prevent it from being saved or printed. If this question is reopened, I'll explain how to integrate Adobe DRM feature with Drupal. – Free Radical Mar 14 '14 at 6:29
  • @GisleHannemyr Is there really? One that doesn't require installing that pesky Digital Editions? Awesome. I've re-opened the question, please go ahead and put an answer in I (and I'm sure plenty of others) would be interested to know about it, especially the Drupal-integration – Clive Mar 14 '14 at 10:36

The Adobe PDF format allows installation of several types of DRM (Digital Rights Management) that may limit what viewers may do with it.

(For the record: This is a feature of standard PDFs that people normally view with the free Acrobat reader. It has nothing to do with Adobe Digital Editions or the Adobe Content Server).

You can set the security of any PDF document when you create the PDF document by means of Adobe Acrobat Professional . To set the permissions security, type ctrl-D for "Document Properties" and select the security tab. Select "Passord Security" and pick a password. Then set the "Printing allowed" permission to "None" as shown in the screen capture below. The password will not be required to view the document, but will be required to print it.

Adobe Acrobat Pro permissions dialog

To integrate this with Drupal, install the Field Permissions module. Store the password used to protect the PDF permissions in a text field in the node the PDF is attached to. Use Field Permissions to restrict access to the field containing this password to premium users (i.e. to user that has paid for access printable PDFs).

This means that everybody can view the PDF, but only those granted the right to view the password text field will be able to print it.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.