FileInputStream fileInputStream=new FileInputStream("1.pdf");
PDFParser parser = new PDFParser(fileInputStream);
parser.parse();
COSDocument cosDocument=parser.getDocument();
PDDocument pdfDocument=new PDDocument(cosDocument);
PDFTextStripper stripper = new PDFTextStripper();
String contents = stripper.getText(pdfDocument);
PDFBox. Парсинг PDF-файла
Код:
Вытянуть все картинки можно вот так:
Код:
try{
List pages = pdfDocument.getDocumentCatalog().getAllPages();
Iterator iter = pages.iterator();
while( iter.hasNext() )
{
PDPage page = (PDPage)iter.next();
PDResources resources = page.getResources();
Map images = resources.getImages();
if( images != null )
{
Iterator imageIter = images.keySet().iterator();
while( imageIter.hasNext() )
{
String key = (String)imageIter.next();
PDXObjectImage image = (PDXObjectImage)images.get( key );
String name = getUniqueFileName( key, image.getSuffix() );
System.out.println( "Writing image:" + name );
image.write2file( name );
}
}
}
}
finally
{
if( pdfDocument != null )
{
pdfDocument.close();
}
}
List pages = pdfDocument.getDocumentCatalog().getAllPages();
Iterator iter = pages.iterator();
while( iter.hasNext() )
{
PDPage page = (PDPage)iter.next();
PDResources resources = page.getResources();
Map images = resources.getImages();
if( images != null )
{
Iterator imageIter = images.keySet().iterator();
while( imageIter.hasNext() )
{
String key = (String)imageIter.next();
PDXObjectImage image = (PDXObjectImage)images.get( key );
String name = getUniqueFileName( key, image.getSuffix() );
System.out.println( "Writing image:" + name );
image.write2file( name );
}
}
}
}
finally
{
if( pdfDocument != null )
{
pdfDocument.close();
}
}
Может, кто знает, как парсировать pdf-документ по порядку - то есть идем с начала документы к концу, находим элемент, определяем, что это за элемент - и в зависимости от этого парсируем в текст или изображение...
Буду очень благодарен!