Adam...below

On Aug 25, 2011, at 7:46 PM, Adam Nichols wrote:

> AccessPermission can be used without encrypting the PDF.  That's why I
> said it is not related to encryption.

I would be very interested in knowing how you do that.  Searching the PDFBox 
1.4.0 tree, I can only find uses of AccessPermission in conjunction with 
encryption.  

--Ken


> 
> However, if you are encrypting something, AccessPermission will be
> used.  So I'd still say that AccessPermission is not related to
> encryption.  If you had to encrypt the file in order to use
> AccessPermission, then I would agree that it is related to encryption.
> 
> On Thu, Aug 25, 2011 at 6:02 PM, Ken Bowen <[email protected]> wrote:
>> Hello Adam,
>> 
>> Thanks for the reply.  Unfortunately, we're not interested in encrypting the 
>> form; only in preventing
>> further changes beyond a nominal "finished" point.  I was only hoping for a 
>> "global" way of doing that.
>> 
>> I think you may have made an error when you said
>> 
>>> Now, to answer your question, the AccessPermission class is not related
>>> to encryption,
>> 
>> Since org.apache.pdfbox.pdmodel.encryption.AccessPermission is part of the 
>> encryption package,
>> and since it also used as a argument to the StandardProtectionPolicy and 
>> PublicKeyRecipient
>> constructors, it is clearly "related" to encryption.
>> 
>> Regards,
>> Ken
>> 
>> On Aug 25, 2011, at 12:21 AM, Adam Nichols wrote:
>> 
>>> Hello.
>>> 
>>> First, let me explain what the options are in terms of protecting a PDF.
>>> There are three different types:
>>> 1. No protection.  There's no encryption, no passwords, and anyone with
>>> the right software can read, modify, extract, print and whatever else
>>> they desire.
>>> 2. PDFs with an owner password.  These can be opened and read by anyone,
>>> however there are some flags which are set which say "please don't edit
>>> this", "please don't print", and so forth.  From a technical standpoint,
>>> there's nothing stopping anyone from doing these prohibited actions, but
>>> most software will respect these flags and only allow you to preform
>>> prohibited actions if you enter the correct owner password.
>>> 3. Then there are PDFs with a user password.  These can not be opened,
>>> read, or processed in any way without the user password.  There is
>>> encryption (RC4 or AES) which stops anyone from bypassing this, no
>>> matter what software they use.  Once the correct password is entered,
>>> the file is decrypted and it treated like #1 or #2.
>>> 
>>> Now, to answer your question, the AccessPermission class is not related
>>> to encryption, however it is related to the owner password.  You will
>>> not need to enter a password to open protected files (as long as there's
>>> no user password); you will only need the password to edit them.  Just
>>> keep in mind that it's only going to stop people who didn't REALLY want
>>> to edit it.
>>> 
>>> There's no way to use strong encryption to enforce the editability of
>>> the file.  As long as the program can process the file enough to know
>>> what to render, then it has everything it needs to write out a copy and
>>> modify the copy.
>>> 
>>> Hope this helps you understand how PDFs work, and how the class works.
>>> 
>>> --Adam
>>> 
>>> On 08/24/2011 08:19 PM, Ken Bowen wrote:
>>>> Hi Everyone,
>>>> 
>>>> We have routines which create and fill out pdf forms using PDFBox.
>>>> After creating and filling the fields, we need to make all of them 
>>>> read-only.
>>>> Is there a global way to do this with PDFBox for a form?
>>>> Or do I need to go through and apply PDField.setReadonly(true) to each 
>>>> field?
>>>> 
>>>> I've observed that org.apache.pdfbox.pdmodel.encryption.AccessPermission 
>>>> has a bit for setting fields read-only, but it seems this class is only 
>>>> related to encyrpted PDFs -- is this true?
>>>> 
>>>> Thanks in advance,
>>>> -- Ken
>>>> 
>> 
>> 

Reply via email to