Search in sources :

Example 11 with MissingOperandException

use of org.apache.pdfbox.contentstream.operator.MissingOperandException in project pdfbox by apache.

the class MoveTo method process.

@Override
public void process(Operator operator, List<COSBase> operands) throws IOException {
    if (operands.size() < 2) {
        throw new MissingOperandException(operator, operands);
    }
    COSBase base0 = operands.get(0);
    if (!(base0 instanceof COSNumber)) {
        return;
    }
    COSBase base1 = operands.get(1);
    if (!(base1 instanceof COSNumber)) {
        return;
    }
    COSNumber x = (COSNumber) base0;
    COSNumber y = (COSNumber) base1;
    Point2D.Float pos = context.transformedPoint(x.floatValue(), y.floatValue());
    context.moveTo(pos.x, pos.y);
}
Also used : MissingOperandException(org.apache.pdfbox.contentstream.operator.MissingOperandException) Point2D(java.awt.geom.Point2D) COSNumber(org.apache.pdfbox.cos.COSNumber) COSBase(org.apache.pdfbox.cos.COSBase)

Example 12 with MissingOperandException

use of org.apache.pdfbox.contentstream.operator.MissingOperandException in project pdfbox by apache.

the class SetColor method process.

@Override
public void process(Operator operator, List<COSBase> arguments) throws IOException {
    PDColorSpace colorSpace = getColorSpace();
    if (!(colorSpace instanceof PDPattern)) {
        if (arguments.size() < colorSpace.getNumberOfComponents()) {
            throw new MissingOperandException(operator, arguments);
        }
        if (!checkArrayTypesClass(arguments, COSNumber.class)) {
            return;
        }
    }
    COSArray array = new COSArray();
    array.addAll(arguments);
    setColor(new PDColor(array, colorSpace));
}
Also used : COSArray(org.apache.pdfbox.cos.COSArray) MissingOperandException(org.apache.pdfbox.contentstream.operator.MissingOperandException) PDPattern(org.apache.pdfbox.pdmodel.graphics.color.PDPattern) COSNumber(org.apache.pdfbox.cos.COSNumber) PDColorSpace(org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace) PDColor(org.apache.pdfbox.pdmodel.graphics.color.PDColor)

Example 13 with MissingOperandException

use of org.apache.pdfbox.contentstream.operator.MissingOperandException in project pdfbox by apache.

the class LineTo method process.

@Override
public void process(Operator operator, List<COSBase> operands) throws IOException {
    if (operands.size() < 2) {
        throw new MissingOperandException(operator, operands);
    }
    COSBase base0 = operands.get(0);
    if (!(base0 instanceof COSNumber)) {
        return;
    }
    COSBase base1 = operands.get(1);
    if (!(base1 instanceof COSNumber)) {
        return;
    }
    // append straight line segment from the current point to the point
    COSNumber x = (COSNumber) base0;
    COSNumber y = (COSNumber) base1;
    Point2D.Float pos = context.transformedPoint(x.floatValue(), y.floatValue());
    if (context.getCurrentPoint() == null) {
        LOG.warn("LineTo (" + pos.x + "," + pos.y + ") without initial MoveTo");
        context.moveTo(pos.x, pos.y);
    } else {
        context.lineTo(pos.x, pos.y);
    }
}
Also used : MissingOperandException(org.apache.pdfbox.contentstream.operator.MissingOperandException) Point2D(java.awt.geom.Point2D) COSNumber(org.apache.pdfbox.cos.COSNumber) COSBase(org.apache.pdfbox.cos.COSBase)

Example 14 with MissingOperandException

use of org.apache.pdfbox.contentstream.operator.MissingOperandException in project pdfbox by apache.

the class DrawObject method process.

@Override
public void process(Operator operator, List<COSBase> arguments) throws IOException {
    if (arguments.size() < 1) {
        throw new MissingOperandException(operator, arguments);
    }
    COSBase base0 = arguments.get(0);
    if (!(base0 instanceof COSName)) {
        return;
    }
    COSName name = (COSName) base0;
    PDXObject xobject = context.getResources().getXObject(name);
    ((PDFMarkedContentExtractor) context).xobject(xobject);
    if (xobject instanceof PDTransparencyGroup) {
        context.showTransparencyGroup((PDTransparencyGroup) xobject);
    } else if (xobject instanceof PDFormXObject) {
        PDFormXObject form = (PDFormXObject) xobject;
        context.showForm(form);
    }
}
Also used : PDTransparencyGroup(org.apache.pdfbox.pdmodel.graphics.form.PDTransparencyGroup) COSName(org.apache.pdfbox.cos.COSName) MissingOperandException(org.apache.pdfbox.contentstream.operator.MissingOperandException) PDFMarkedContentExtractor(org.apache.pdfbox.text.PDFMarkedContentExtractor) COSBase(org.apache.pdfbox.cos.COSBase) PDFormXObject(org.apache.pdfbox.pdmodel.graphics.form.PDFormXObject) PDXObject(org.apache.pdfbox.pdmodel.graphics.PDXObject)

Example 15 with MissingOperandException

use of org.apache.pdfbox.contentstream.operator.MissingOperandException in project pdfbox by apache.

the class CurveTo method process.

@Override
public void process(Operator operator, List<COSBase> operands) throws IOException {
    if (operands.size() < 6) {
        throw new MissingOperandException(operator, operands);
    }
    if (!checkArrayTypesClass(operands, COSNumber.class)) {
        return;
    }
    COSNumber x1 = (COSNumber) operands.get(0);
    COSNumber y1 = (COSNumber) operands.get(1);
    COSNumber x2 = (COSNumber) operands.get(2);
    COSNumber y2 = (COSNumber) operands.get(3);
    COSNumber x3 = (COSNumber) operands.get(4);
    COSNumber y3 = (COSNumber) operands.get(5);
    Point2D.Float point1 = context.transformedPoint(x1.floatValue(), y1.floatValue());
    Point2D.Float point2 = context.transformedPoint(x2.floatValue(), y2.floatValue());
    Point2D.Float point3 = context.transformedPoint(x3.floatValue(), y3.floatValue());
    if (context.getCurrentPoint() == null) {
        LOG.warn("curveTo (" + point3.x + "," + point3.y + ") without initial MoveTo");
        context.moveTo(point3.x, point3.y);
    } else {
        context.curveTo(point1.x, point1.y, point2.x, point2.y, point3.x, point3.y);
    }
}
Also used : MissingOperandException(org.apache.pdfbox.contentstream.operator.MissingOperandException) Point2D(java.awt.geom.Point2D) COSNumber(org.apache.pdfbox.cos.COSNumber)

Aggregations

MissingOperandException (org.apache.pdfbox.contentstream.operator.MissingOperandException)23 COSNumber (org.apache.pdfbox.cos.COSNumber)19 COSBase (org.apache.pdfbox.cos.COSBase)11 Point2D (java.awt.geom.Point2D)6 COSName (org.apache.pdfbox.cos.COSName)5 Matrix (org.apache.pdfbox.util.Matrix)3 COSArray (org.apache.pdfbox.cos.COSArray)2 PDXObject (org.apache.pdfbox.pdmodel.graphics.PDXObject)2 PDFormXObject (org.apache.pdfbox.pdmodel.graphics.form.PDFormXObject)2 PDTransparencyGroup (org.apache.pdfbox.pdmodel.graphics.form.PDTransparencyGroup)2 ArrayList (java.util.ArrayList)1 COSFloat (org.apache.pdfbox.cos.COSFloat)1 MissingResourceException (org.apache.pdfbox.pdmodel.MissingResourceException)1 PDFont (org.apache.pdfbox.pdmodel.font.PDFont)1 PDColor (org.apache.pdfbox.pdmodel.graphics.color.PDColor)1 PDColorSpace (org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace)1 PDPattern (org.apache.pdfbox.pdmodel.graphics.color.PDPattern)1 PDImageXObject (org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject)1 PDExtendedGraphicsState (org.apache.pdfbox.pdmodel.graphics.state.PDExtendedGraphicsState)1 RenderingMode (org.apache.pdfbox.pdmodel.graphics.state.RenderingMode)1