public void analyse(PDFInfoHolder pdfInfoHolder) throws Exception
	{
		// can't analize if there is no document
		if(pdfInfoHolder.getDifferent() == DifferenceType.MISSINGDOCUMENT)
			return;
		
		Document pdfFile1 = new Document();
		Document pdfFile2 = new Document();
		
		try {
			// get pdf document -> create a PDFHolder objects, which contains the entire structure of the document
			pdfFile1.setFile(pdfInfoHolder.getPDFFile1().getAbsolutePath());
			pdfInfoHolder.setPDFStructure1(analysePDF(pdfFile1, pdfInfoHolder));
			
			pdfFile2.setFile(pdfInfoHolder.getPDFFile2().getAbsolutePath());
			pdfInfoHolder.setPDFStructure2(analysePDF(pdfFile2, pdfInfoHolder));	
			
		} catch (Exception e) {
			
			pdfFile1.dispose();
			pdfFile2.dispose();
			
			throw new Exception(pdfInfoHolder.getFilename()+": Could not load PDF Structure. Reason: "+e.getMessage(), e);
		}
		
		// check for different page amount
		if(pdfInfoHolder.getPDF1().getNumPages() != pdfInfoHolder.getPDF2().getNumPages())
		{
			pdfInfoHolder.setDifferent(DifferenceType.MISSINGPAGE);
			diff.log(pdfInfoHolder.getFilename()+": Different amount of pages: "+pdfFile1.getNumberOfPages() +" to "+pdfFile2.getNumberOfPages());
		}	
	}