Search in sources :

Example 6 with PDXObject

use of com.tom_roush.pdfbox.pdmodel.graphics.PDXObject in project PdfBox-Android by TomRoush.

the class DrawObject method process.

@Override
public void process(Operator operator, List<COSBase> arguments) throws IOException {
    if (arguments.isEmpty()) {
        throw new MissingOperandException(operator, arguments);
    }
    COSBase base0 = arguments.get(0);
    if (!(base0 instanceof COSName)) {
        return;
    }
    COSName name = (COSName) base0;
    if (context.getResources().isImageXObject(name)) {
        // we're done here, don't decode images when doing text extraction
        return;
    }
    PDXObject xobject = context.getResources().getXObject(name);
    if (xobject instanceof PDFormXObject) {
        try {
            context.increaseLevel();
            if (context.getLevel() > 25) {
                Log.e("PdfBox-Android", "recursion is too deep, skipping form XObject");
                return;
            }
            PDFormXObject form = (PDFormXObject) xobject;
            if (form instanceof PDTransparencyGroup) {
                context.showTransparencyGroup((PDTransparencyGroup) form);
            } else {
                context.showForm(form);
            }
        } finally {
            context.decreaseLevel();
        }
    }
}
Also used : PDTransparencyGroup(com.tom_roush.pdfbox.pdmodel.graphics.form.PDTransparencyGroup) COSName(com.tom_roush.pdfbox.cos.COSName) COSBase(com.tom_roush.pdfbox.cos.COSBase) PDFormXObject(com.tom_roush.pdfbox.pdmodel.graphics.form.PDFormXObject) PDXObject(com.tom_roush.pdfbox.pdmodel.graphics.PDXObject)

Example 7 with PDXObject

use of com.tom_roush.pdfbox.pdmodel.graphics.PDXObject in project PdfBox-Android by TomRoush.

the class DrawObject method process.

@Override
public void process(Operator operator, List<COSBase> operands) throws IOException {
    if (operands.isEmpty()) {
        throw new MissingOperandException(operator, operands);
    }
    COSBase base0 = operands.get(0);
    if (!(base0 instanceof COSName)) {
        return;
    }
    COSName objectName = (COSName) base0;
    PDXObject xobject = context.getResources().getXObject(objectName);
    if (xobject == null) {
        throw new MissingResourceException("Missing XObject: " + objectName.getName());
    } else if (xobject instanceof PDImageXObject) {
        PDImageXObject image = (PDImageXObject) xobject;
        context.drawImage(image);
    } else if (xobject instanceof PDFormXObject) {
        try {
            context.increaseLevel();
            if (context.getLevel() > 25) {
                Log.e("PdfBox-Android", "recursion is too deep, skipping form XObject");
                return;
            }
            PDFormXObject form = (PDFormXObject) xobject;
            if (form instanceof PDTransparencyGroup) {
                context.showTransparencyGroup((PDTransparencyGroup) form);
            } else {
                context.showForm(form);
            }
        } finally {
            context.decreaseLevel();
        }
    }
}
Also used : PDTransparencyGroup(com.tom_roush.pdfbox.pdmodel.graphics.form.PDTransparencyGroup) PDImageXObject(com.tom_roush.pdfbox.pdmodel.graphics.image.PDImageXObject) COSName(com.tom_roush.pdfbox.cos.COSName) MissingOperandException(com.tom_roush.pdfbox.contentstream.operator.MissingOperandException) MissingResourceException(com.tom_roush.pdfbox.pdmodel.MissingResourceException) COSBase(com.tom_roush.pdfbox.cos.COSBase) PDFormXObject(com.tom_roush.pdfbox.pdmodel.graphics.form.PDFormXObject) PDXObject(com.tom_roush.pdfbox.pdmodel.graphics.PDXObject)

Aggregations

PDXObject (com.tom_roush.pdfbox.pdmodel.graphics.PDXObject)7 COSBase (com.tom_roush.pdfbox.cos.COSBase)5 COSName (com.tom_roush.pdfbox.cos.COSName)5 PDFormXObject (com.tom_roush.pdfbox.pdmodel.graphics.form.PDFormXObject)4 PDTransparencyGroup (com.tom_roush.pdfbox.pdmodel.graphics.form.PDTransparencyGroup)4 IOException (java.io.IOException)3 MissingOperandException (com.tom_roush.pdfbox.contentstream.operator.MissingOperandException)2 PDResources (com.tom_roush.pdfbox.pdmodel.PDResources)2 COSDictionary (com.tom_roush.pdfbox.cos.COSDictionary)1 COSObject (com.tom_roush.pdfbox.cos.COSObject)1 COSStream (com.tom_roush.pdfbox.cos.COSStream)1 MissingResourceException (com.tom_roush.pdfbox.pdmodel.MissingResourceException)1 PDRectangle (com.tom_roush.pdfbox.pdmodel.common.PDRectangle)1 BlendMode (com.tom_roush.pdfbox.pdmodel.graphics.blend.BlendMode)1 PDImageXObject (com.tom_roush.pdfbox.pdmodel.graphics.image.PDImageXObject)1 PDExtendedGraphicsState (com.tom_roush.pdfbox.pdmodel.graphics.state.PDExtendedGraphicsState)1 PDAnnotation (com.tom_roush.pdfbox.pdmodel.interactive.annotation.PDAnnotation)1 PDAnnotationUnknown (com.tom_roush.pdfbox.pdmodel.interactive.annotation.PDAnnotationUnknown)1 PDFMarkedContentExtractor (com.tom_roush.pdfbox.text.PDFMarkedContentExtractor)1