* @param fileToAdd file to add
* @param password password to open the file
* @return the item to add to the table
*/
PdfSelectionTableItem getPdfSelectionTableItem(File fileToAdd, String password, String pageSelection){
PdfSelectionTableItem tableItem = null;
PdfReader pdfReader = null;
if (fileToAdd != null){
tableItem = new PdfSelectionTableItem();
tableItem.setInputFile(fileToAdd);
tableItem.setPassword(password);
tableItem.setPageSelection(pageSelection);
try{
//fix 04/11/08 for memory usage
pdfReader = new PdfReader(new RandomAccessFileOrArray(fileToAdd.getAbsolutePath()), (password != null)?password.getBytes():null);
tableItem.setEncrypted(pdfReader.isEncrypted());
tableItem.setFullPermission(pdfReader.isOpenedWithFullPermissions());
if(tableItem.isEncrypted()){
tableItem.setPermissions(getPermissionsVerbose(pdfReader.getPermissions()));
int cMode = pdfReader.getCryptoMode();
switch (cMode){
case PdfWriter.STANDARD_ENCRYPTION_40:
tableItem.setEncryptionAlgorithm(EncryptionUtility.RC4_40);
break;
case PdfWriter.STANDARD_ENCRYPTION_128:
tableItem.setEncryptionAlgorithm(EncryptionUtility.RC4_128);
break;
case PdfWriter.ENCRYPTION_AES_128:
tableItem.setEncryptionAlgorithm(EncryptionUtility.AES_128);
break;
default:
break;
}
}
tableItem.setPagesNumber(Integer.toString(pdfReader.getNumberOfPages()));
tableItem.setFileSize(fileToAdd.length());
tableItem.setPdfVersion(pdfReader.getPdfVersion());
tableItem.setSyntaxErrors(pdfReader.isRebuilt());
initTableItemDocumentData(pdfReader, tableItem);
}
catch (Exception e){
tableItem.setLoadedWithErrors(true);
LOG.error(GettextResource.gettext(Configuration.getInstance().getI18nResourceBundle(),"Error loading ")+fileToAdd.getAbsolutePath()+" :", e);
}
finally{
if(pdfReader != null){
pdfReader.close();