package com.tom_roush.pdfbox.contentstream.operator.graphics; import java.io.IOException; import java.util.List; import com.tom_roush.pdfbox.contentstream.operator.Operator; import com.tom_roush.pdfbox.cos.COSBase; import com.tom_roush.pdfbox.cos.COSName; import com.tom_roush.pdfbox.pdmodel.MissingResourceException; import com.tom_roush.pdfbox.pdmodel.graphics.PDXObject; import com.tom_roush.pdfbox.pdmodel.graphics.form.PDFormXObject; import com.tom_roush.pdfbox.pdmodel.graphics.image.PDImageXObject; /** * Do: Draws an XObject. * * @author Ben Litchfield * @author John Hewson */ public final class DrawObject extends GraphicsOperatorProcessor { @Override public void process(Operator operator, List<COSBase> operands) throws IOException { COSName objectName = (COSName)operands.get(0); 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) { PDFormXObject form = (PDFormXObject) xobject; if (form.getGroup() != null && COSName.TRANSPARENCY.equals(form.getGroup().getSubType())) { getContext().showTransparencyGroup(form); } else { getContext().showForm(form); } } } @Override public String getName() { return "Do"; } }