Hi All, 

How can I determine in Java if a PDF file matches these requirements? 

• The file is optimized for Fast Web Viewing. 
• The file does not contain compressed stream objects. 
• The Document restrictions allow Commenting. // Am using 
ap.canModifyAnnotations() ? 


I think these requirements checks are close to working nicely already: 
• The file contains bookmarks (if it is over 50 pages). // Am using the below, 
does it look close? 
• The Security method is set to “No Security” (in other words, no encryption 
exists in the file). // Am using doc.isEncrypted() 
• The Document restrictions allow Printing, and Page Extraction. // Am using 
ap.canPrint() and ap.canExtractContent() 


Close for checking if it has bookmarks? 
..... 
public Boolean hasBookmarks(){ 

PDDocumentOutline root = doc.getDocumentCatalog().getDocumentOutline(); 
if(root == null){ 
setValidationMessage("Not Bookmarked"); 
return false; 
} 
PDOutlineItem item = root.getFirstChild(); 
if(item == null){ 
setValidationMessage("Not Bookmarked"); 
return false; 
} 
int i = 0; 
while (item != null) { 
PDOutlineItem child = item.getFirstChild(); 
while (child != null) { 
child = child.getNextSibling(); 
i++; 
} 
item = item.getNextSibling(); 
} 

if(i > 0){ 
return true; 
} 
else{ 
setValidationMessage("Not Bookmarked"); 
return false; 
} 
} 

Thanks for anything 
Johan, Seattle 

Reply via email to