Не удалось проанализировать текст и изображение из файла PDF - PullRequest
0 голосов
/ 13 декабря 2018

Я прошел Тика Документация.Я нахожу решение для извлечения текста.но это не печатает возвращаемое изображение.

.java File

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.Parser;
import org.apache.tika.parser.ocr.TesseractOCRConfig;
import org.apache.tika.parser.pdf.PDFParserConfig;
import org.apache.tika.sax.BodyContentHandler;
import org.xml.sax.SAXException;

public class Imageextractor3 {

     public static void main(String[] args)
                throws IOException, TikaException, SAXException {
            Parser parser = new AutoDetectParser();
            BodyContentHandler handler = new BodyContentHandler(Integer.MAX_VALUE);

            TesseractOCRConfig config = new TesseractOCRConfig();
            PDFParserConfig pdfConfig = new PDFParserConfig();
            pdfConfig.setExtractInlineImages(true);

            ParseContext parseContext = new ParseContext();
            parseContext.set(TesseractOCRConfig.class, config);
            parseContext.set(PDFParserConfig.class, pdfConfig);
            //need to add this to make sure recursive parsing happens!
            parseContext.set(Parser.class, parser);


            File file=new File("C://Users//Vaibhav Shukla//Desktop//8577.00.pdf");
            System.out.println(file);

            FileInputStream stream = new FileInputStream(new File("C://Users//Vaibhav Shukla//Desktop//pdfs//hh.pdf"));
            Metadata metadata = new Metadata();
            parser.parse(stream, handler, metadata, parseContext);
            System.out.println(metadata);
            String content = handler.toString();
            FileOutputStream fos=new FileOutputStream("C://Users//Vaibhav Shukla//Desktop//pdfs//hd.doc");
            fos.write(content.getBytes());
            System.out.println("===============");
            System.out.println(content);
            System.out.println("Done");
        }

}

Мне нужно предложение, как добавить функциональность, которая может обнаруживать изображение в файле PDF

1 Ответ

0 голосов
/ 14 декабря 2018

Быстрое решение для преобразования извлеченных изображений, встроенных в pdf.

public void extract(File file) throws IOException { 
 PDDocument doc=new PDDocument().load(file);
 Iterator<PDPage> itr=doc.getDocumentCatalog().getPages().iterator();
 while(itr.hasNext())
 {
    PDResources res=itr.next().getResources();
    Iterable<COSName> cName=res.getXObjectNames();
    Iterator<COSName> citr=cName.iterator();
        while(citr.hasNext())
        {
            String imageName= citr.next().getName();
            System.out.println(imageName);
            COSName cosName=COSName.getPDFName(imageName);
            PDImageXObject im = (PDImageXObject) res.getXObject(cosName);
            File ff = new 
            File("C://Users//workspace//Desktop//pdfs//"+imageName+".png");
            BufferedImage bi=im.getImage();
            ImageIO.write(bi,"png",ff);
        }

 }}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...