Am 10.02.2020 um 17:13 schrieb aravinth thangasami:
Thanks Maruan,
I have tried that too, The time taken for extracting images using *PDFBOX*
was larger than using Linux command *PDFIMAGES. *
For saying If the time taken for extracting the image from PDF using PDFBOX
is 300 milliseconds, It's happening in 10 milliseconds using PDFIMAGES.
On checking the code, the maximum time was converting PdfXImageObject to
BufferedImage.
pdfimages is from poppler, which is C/C++. So of course it is faster.
Why do you want to use PDFBox? Poppler works nicely.
Tilman
Is there anything I'm missing here?, Anything can be improved in converting
the image?
Thanks
Aravinth.
On Mon, Feb 10, 2020 at 3:19 PM Maruan Sahyoun <sahy...@fileaffairs.de>
wrote:
Hi,
take a look at the ExtractImages.java source code in
/org/apache/pdfbox/tools/ for cases where you can take the image data
directly and write that out directly.
BR
Maruan
Hi all,
I have a use case where I need to extract the images and the text content
from PDF documents.
Comparing the image extraction and text extraction speed the time taken
for
image extraction is too large.
Furthermore, we compared the image extraction speed with Linux bash
command
*pdfimages* it was so much faster than pdfbox
Is there anything I'm missing? I have included the snipped I have used
for
image extraction here.
Thanks
Aravinth
PDDocument pdDocument = PDDocument.load(new
File("test.pdf"));
for (PDPage pdPage : pdDocument.getPages())
{
PDResources resources = pdPage.getResources();
Iterable<COSName> xObjectNames =
resources.getXObjectNames();
for (COSName cosName : xObjectNames)
{
PDXObject xObject = resources.getXObject(cosName);
if(xObject instanceof PDImageXObject)
{
PDImageXObject pdImageXObject =
(PDImageXObject)
xObject;
long start = System.currentTimeMillis();
BufferedImage image =
pdImageXObject.getImage();
String nameName = cosName.getName();
System.out.println("Time taken for PDF image
object "+nameName +" "+(System.currentTimeMillis() - start));
BufferedOutputStream output = new
BufferedOutputStream(new FileOutputStream(nameName + "." +
pdImageXObject.getSuffix()));
start = System.currentTimeMillis();
ImageIOUtil.writeImage(image ,
pdImageXObject.getSuffix() , output);
output.close();
System.out.println("Time taken for write to
file
object "+nameName +" " +(System.currentTimeMillis() - start));
}
}
}
pdDocument.close();
System.err.println("Time taken for extracting for images "
+
(System.currentTimeMillis() - time));
The PDF Image extraction using pdfimages,
long start = System.currentTimeMillis();
ProcessBuilder processBuilder = new ProcessBuilder("pdfimages" , "-j"
,
"test.pdf" , "out");
processBuilder.start();
System.out.println("Time taken for extracting images " +
(System.currentTimeMillis() - start));
--
Maruan Sahyoun
FileAffairs GmbH
Josef-Schappe-Straße 21
40882 Ratingen
Tel: +49 (2102) 89497 88
Fax: +49 (2102) 89497 91
sahy...@fileaffairs.de
www.fileaffairs.de
Geschäftsführer: Maruan Sahyoun
Handelsregister: AG Düsseldorf, HRB 53837
UST.-ID: DE248275827
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: users-h...@pdfbox.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: users-h...@pdfbox.apache.org