Search in sources :

Example 21 with COSNumber

use of org.apache.pdfbox.cos.COSNumber in project pdfbox by apache.

the class COSUtils method getAsFloat.

/**
 * Return the COSBase object as Float if the COSBase object is an instance of COSFloat or a reference to a COSFloat
 * object. In other cases, this method returns null;
 *
 * @param cbase the object to get.
 * @param cDoc the document.
 * @return the object as Float if the object is a COSFloat or a reference to it. Returns null otherwise.
 */
public static Float getAsFloat(COSBase cbase, COSDocument cDoc) {
    if (cbase instanceof COSObject) {
        COSObjectKey key = new COSObjectKey((COSObject) cbase);
        COSObject obj = cDoc.getObjectFromPool(key);
        if (obj == null) {
            return null;
        } else if (obj.getObject() instanceof COSNumber) {
            return ((COSNumber) obj.getObject()).floatValue();
        } else {
            return null;
        }
    } else if (cbase instanceof COSNumber) {
        return ((COSNumber) cbase).floatValue();
    } else {
        return null;
    }
}
Also used : COSObjectKey(org.apache.pdfbox.cos.COSObjectKey) COSObject(org.apache.pdfbox.cos.COSObject) COSNumber(org.apache.pdfbox.cos.COSNumber)

Example 22 with COSNumber

use of org.apache.pdfbox.cos.COSNumber in project pdfbox by apache.

the class PreflightType3Stream method processOperator.

/**
 * This is used to handle an operation.
 *
 * @param operator
 *            The operation to perform.
 * @param operands
 *            The list of arguments.
 *
 * @throws IOException
 *             If there is an error processing the operation.
 */
@Override
protected void processOperator(Operator operator, List<COSBase> operands) throws IOException {
    super.processOperator(operator, operands);
    String operation = operator.getName();
    if (operation.equals("BI")) {
        image = new PDInlineImage(operator.getImageParameters(), operator.getImageData(), getResources());
        validateInlineImageFilter(operator);
        validateInlineImageColorSpace(operator);
    }
    if (operation.equals("d0")) {
        checkType3FirstOperator(operands);
    } else if (operation.equals("d1")) {
        COSNumber llx = (COSNumber) operands.get(2);
        COSNumber lly = (COSNumber) operands.get(3);
        COSNumber urx = (COSNumber) operands.get(4);
        COSNumber ury = (COSNumber) operands.get(5);
        box = new BoundingBox();
        box.setLowerLeftX(llx.floatValue());
        box.setLowerLeftY(lly.floatValue());
        box.setUpperRightX(urx.floatValue());
        box.setUpperRightY(ury.floatValue());
        checkType3FirstOperator(operands);
    }
    checkColorOperators(operation);
    validateRenderingIntent(operator, operands);
    checkSetColorSpaceOperators(operator, operands);
    validateNumberOfGraphicStates(operator);
    firstOperator = false;
}
Also used : BoundingBox(org.apache.fontbox.util.BoundingBox) COSNumber(org.apache.pdfbox.cos.COSNumber) PDInlineImage(org.apache.pdfbox.pdmodel.graphics.image.PDInlineImage)

Example 23 with COSNumber

use of org.apache.pdfbox.cos.COSNumber in project pdfbox by apache.

the class Concatenate method process.

@Override
public void process(Operator operator, List<COSBase> arguments) throws IOException {
    if (arguments.size() < 6) {
        throw new MissingOperandException(operator, arguments);
    }
    if (!checkArrayTypesClass(arguments, COSNumber.class)) {
        return;
    }
    // concatenate matrix to current transformation matrix
    COSNumber a = (COSNumber) arguments.get(0);
    COSNumber b = (COSNumber) arguments.get(1);
    COSNumber c = (COSNumber) arguments.get(2);
    COSNumber d = (COSNumber) arguments.get(3);
    COSNumber e = (COSNumber) arguments.get(4);
    COSNumber f = (COSNumber) arguments.get(5);
    Matrix matrix = new Matrix(a.floatValue(), b.floatValue(), c.floatValue(), d.floatValue(), e.floatValue(), f.floatValue());
    context.getGraphicsState().getCurrentTransformationMatrix().concatenate(matrix);
}
Also used : Matrix(org.apache.pdfbox.util.Matrix) MissingOperandException(org.apache.pdfbox.contentstream.operator.MissingOperandException) COSNumber(org.apache.pdfbox.cos.COSNumber)

Example 24 with COSNumber

use of org.apache.pdfbox.cos.COSNumber in project pdfbox by apache.

the class SetLineMiterLimit method process.

@Override
public void process(Operator operator, List<COSBase> arguments) throws IOException {
    if (arguments.size() < 1) {
        throw new MissingOperandException(operator, arguments);
    }
    COSNumber miterLimit = (COSNumber) arguments.get(0);
    context.getGraphicsState().setMiterLimit(miterLimit.floatValue());
}
Also used : MissingOperandException(org.apache.pdfbox.contentstream.operator.MissingOperandException) COSNumber(org.apache.pdfbox.cos.COSNumber)

Example 25 with COSNumber

use of org.apache.pdfbox.cos.COSNumber in project pdfbox by apache.

the class CurveToReplicateFinalPoint method process.

@Override
public void process(Operator operator, List<COSBase> operands) throws IOException {
    if (operands.size() < 4) {
        throw new MissingOperandException(operator, operands);
    }
    if (!checkArrayTypesClass(operands, COSNumber.class)) {
        return;
    }
    COSNumber x1 = (COSNumber) operands.get(0);
    COSNumber y1 = (COSNumber) operands.get(1);
    COSNumber x3 = (COSNumber) operands.get(2);
    COSNumber y3 = (COSNumber) operands.get(3);
    Point2D.Float point1 = context.transformedPoint(x1.floatValue(), y1.floatValue());
    Point2D.Float point3 = context.transformedPoint(x3.floatValue(), y3.floatValue());
    context.curveTo(point1.x, point1.y, point3.x, point3.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

COSNumber (org.apache.pdfbox.cos.COSNumber)61 COSBase (org.apache.pdfbox.cos.COSBase)29 MissingOperandException (org.apache.pdfbox.contentstream.operator.MissingOperandException)18 COSArray (org.apache.pdfbox.cos.COSArray)18 COSInteger (org.apache.pdfbox.cos.COSInteger)10 Point2D (java.awt.geom.Point2D)6 IOException (java.io.IOException)6 COSObject (org.apache.pdfbox.cos.COSObject)5 PDBorderStyleDictionary (org.apache.pdfbox.pdmodel.interactive.annotation.PDBorderStyleDictionary)5 ArrayList (java.util.ArrayList)4 COSDictionary (org.apache.pdfbox.cos.COSDictionary)4 COSName (org.apache.pdfbox.cos.COSName)4 COSObjectKey (org.apache.pdfbox.cos.COSObjectKey)4 PDFont (org.apache.pdfbox.pdmodel.font.PDFont)4 COSFloat (org.apache.pdfbox.cos.COSFloat)3 COSStream (org.apache.pdfbox.cos.COSStream)2 PDRectangle (org.apache.pdfbox.pdmodel.common.PDRectangle)2 ValidationError (org.apache.pdfbox.preflight.ValidationResult.ValidationError)2 Matrix (org.apache.pdfbox.util.Matrix)2 Paint (java.awt.Paint)1