private PDFPageHolder analysePDFPage(PDFInfoHolder pdfInfoHolder, Page page, int pageNumber, float pageWidth, float pageHeight)
	{
		// create a holder for this page
		PDFPageHolder pdfPageHolder =  new PDFPageHolder(pageNumber, pageWidth, pageHeight);
		
		// get all textelement for this page, from the icePDF lib
		PageText pt = page.getText();
					
		// create for all text elements, structure holder 
		for (LineText lt : pt.getPageLines()) 
		{
			for (WordText wt : lt.getWords()) 
			{
				// ignore white spaces
				if(wt.isWhiteSpace())
					continue;
				
				// get the dimension for this element
				Rectangle2D.Float rect = wt.getBounds();
				
				// pdf documents does have their coordinate origin in the lower left corner
				double y = (pageHeight-rect.y)-rect.height;
				
				// create the text holder
				PDFTextHolder pdfTextHolder = new PDFTextHolder(rect.x, y, rect.width, rect.height, wt.getText());
				pdfPageHolder.addElement(pdfTextHolder);
			}
		}
		
		// get all shapes for this page (e.g. images)
		Shapes shapes = page.getShapes(); //modified lib
		
		// create for all images structure holder
		if(shapes != null)
		{
			// get the image position and dimension (best results with zoom 1.0)
			Set<Rectangle2D.Double> imageBoundaries = shapes.getBoundingBoxesForImages((int)pageWidth, (int)pageHeight, GraphicsRenderingHints.PRINT, Page.BOUNDARY_CROPBOX, 0.0f, ZOOM, page);  //modifizierte Bibliothek
			
			// add all found image to the page holder
			for (Rectangle2D.Double rect : imageBoundaries) {
				PDFImageHolder pdfImageHolder = new PDFImageHolder(rect.x, rect.y, rect.width, rect.height);
				pdfPageHolder.addElement(pdfImageHolder);
			}
		}
		
		return pdfPageHolder;
	}