Faisal,

I am afraid this may not be helping you, but for this kind of question I use my Mac with program "Skim" and AppleScript.
The result on Hersham's file is a record

{modification date:date "Sonntag, 20. August 2006 10:37:32", tags: {}, title:"Layout Islam_a4K", logical size:8.78712E+5, page count:9, producer:"Acrobat Distiller 5.0.5 f.r Macintosh", allows copying:false, file size:"860.0 KB (878.712 bytes)", encrypted:true, page size:"21.0 x 30.3 cm (21.0 x 30.3 cm)", creation date:date "Sonntag, 20. August 2006 10:32:14", creator:"QuarkXPress. 4.03: AdobePS 8.7.2 (104)", rating:0.0, author:"Rolf Thieme", physical size: 8.8064E+5, allows printing:true, version:"1.5", file name:"ListOfPublications_Schmidt.pdf"}

Is this what you are looking for? So it is there in any case and pdfbox should be able to extract it.

Cheers
Thomas

Am 08.11.2009 um 18:02 schrieb Faisal Farooq:

wow... talk about miscommunication. Adam, the pdf 'HAS' a password. Its just that I do not know it. the password protects the security settings from being changed, so for example in case i want to change it security settings,
i cannot as i do not know the password.

But my problem is not i want to change the settings. i do not want to
decrypt the document. All i want is, given a pdf, i want to know what
operations I am allowed to do on it as a user i.e. what are the operations that the pdf owner has allowed anybody who does not have know the password.
If I can see those settings without a password by just going to
File->Properties->Security, then I am not willing to accept that I cannot get the same information programmatically without knowing the password.

Guys, am i being so difficult to understand??? Imagine a scenario - I attach a pdf in this email and Hesham gets the pdf. He can open and print it, but he cannot copy the content etc. because I am the owner and only I know the password and I have prevented access to content copying for everybody but I allowed people to print it. If Hesham opens the pdf in adobe and goes to File->Properties->Security, he knows what are the operations he is allowed to perform on the pdf. He does not know the password and does not require
one to do this. Now, how can Hesham know the same information using a
program rather than opening it in adobe and physically looking at the
settings. Makes sense???

Faisal

On Wed, Nov 4, 2009 at 12:03 PM, Faisal Farooq <ffar...@gmail.com> wrote:

I did check that the securityhandler is null. This is because I am not trying to decrypt the document at all and thus it is null which makes sense
and indeed it is returning owner permissions.

But lets step back a second and look at my problem. I have a pdf i did not create and i do not have 'any' password (user or owner). the way the pdf was created that everybody can print it but do nothing else. All i want to know is what are the permissions on this pdf in a programmatic way. one can open this document and look at the properties to find the same thing out, so
there must be a programmatic way to do that too.

So, how could this be done?

Faisal


On Tue, Nov 3, 2009 at 3:20 PM, Faisal Farooq <ffar...@gmail.com> wrote:

Hesham and Adam and All,

My problem seems to be simpler in spirit. All i want to know are the
security settings on a pdf. i do not have the password. i have a pdf file and i want to know what are the operations that are allowed on the pdf. It
would be like opening the pdf in adobe and then going to
File->Properties->Security and finding what is allowed and what is not. The code below does not seem to work. It always return the variable 'ex' as
true, even if the PDF has Extraction Not Allowed set. Any ideas?



ex = ap.canExtractContent() and thus always prints "You have permission to
extract text".

Can anybody tell me what am I doing wrong? The file mypdf.pdf has all
settings except printing as 'Not Allowed'.

**********

       boolean force = false;
       String pdfFile = "mypdf.pdf";

       try {
           document = PDDocument.load(pdfFile, force);
       } catch (IOException e) {
           System.out.println(e.getMessage());
       }

       AccessPermission ap = document.getCurrentAccessPermission();

       boolean ex = ap.canExtractContent();

       if( !ex  ){
System.out.println( "You do not have permission to extract
text" );
       }
       else{
System.out.println( "You have permission to extract text" );
       }

*************

Faisal




Reply via email to