У меня есть PDF-документ с 2 изображениями и текстом, и ожидался штрих-код как одно из изображений. Мне удалось извлечь другое изображение и текстовое содержимое. Но штрих-код не возвращается ни как изображение, ни как текстовый контекст. Как мне извлечь штрих-код
Я переопределил PDFStreamEngine
@Override
protected void processOperator( Operator operator, List<COSBase> operands) throws IOException
{
String operation = operator.getName();
if( "Do".equals(operation) )
{
COSName objectName = (COSName) operands.get( 0 );
PDXObject xobject = getResources().getXObject( objectName );
if( xobject instanceof PDImageXObject)
{
PDImageXObject image = (PDImageXObject)xobject;
int imageWidth = image.getWidth();
int imageHeight = image.getHeight();
// same image to local
BufferedImage bImage = new BufferedImage(imageWidth,imageHeight,BufferedImage.TYPE_INT_ARGB);
bImage = image.getImage();
ImageIO.write(bImage,"PNG",new File("c:\\temp\\image_"+imageNumber+".png"));
System.out.println("Image saved.");
imageNumber++;
}
else if( xobject instanceof PDFormXObject)
{
System.out.println("Form Object");
}
else if (xobject instanceof PDTransparencyGroup) {
System.out.println("Transparency");
}
}
else
{
super.processOperator( operator, operands);
}
}
Кроме того, когда я использовал следующий фрагмент кода, штрих-код не был возвращен
PDPageTree list = document.getPages();
for (PDPage page : list) {
PDResources pdResources = page.getResources();
for (COSName c : pdResources.getXObjectNames()) {
PDXObject o = pdResources.getXObject(c);
System.out.println("COS " + c.getName());
}
}