Search in sources :

Example 41 with COSNumber

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

the class SetFontAndSize method process.

@Override
public void process(Operator operator, List<COSBase> arguments) throws IOException {
    if (arguments.size() < 2) {
        throw new MissingOperandException(operator, arguments);
    }
    COSBase base0 = arguments.get(0);
    COSBase base1 = arguments.get(1);
    if (!(base0 instanceof COSName)) {
        return;
    }
    if (!(base1 instanceof COSNumber)) {
        return;
    }
    COSName fontName = (COSName) base0;
    float fontSize = ((COSNumber) base1).floatValue();
    context.getGraphicsState().getTextState().setFontSize(fontSize);
    PDFont font = context.getResources().getFont(fontName);
    context.getGraphicsState().getTextState().setFont(font);
}
Also used : PDFont(org.apache.pdfbox.pdmodel.font.PDFont) COSName(org.apache.pdfbox.cos.COSName) MissingOperandException(org.apache.pdfbox.contentstream.operator.MissingOperandException) COSNumber(org.apache.pdfbox.cos.COSNumber) COSBase(org.apache.pdfbox.cos.COSBase)

Example 42 with COSNumber

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

the class SetTextRise method process.

@Override
public void process(Operator operator, List<COSBase> arguments) throws IOException {
    if (arguments.size() < 1) {
        return;
    }
    COSBase base = arguments.get(0);
    if (!(base instanceof COSNumber)) {
        return;
    }
    COSNumber rise = (COSNumber) base;
    context.getGraphicsState().getTextState().setRise(rise.floatValue());
}
Also used : COSNumber(org.apache.pdfbox.cos.COSNumber) COSBase(org.apache.pdfbox.cos.COSBase)

Example 43 with COSNumber

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

the class SetWordSpacing method process.

@Override
public void process(Operator operator, List<COSBase> arguments) {
    if (arguments.size() < 1) {
        return;
    }
    COSBase base = arguments.get(0);
    if (!(base instanceof COSNumber)) {
        return;
    }
    COSNumber wordSpacing = (COSNumber) base;
    context.getGraphicsState().getTextState().setWordSpacing(wordSpacing.floatValue());
}
Also used : COSNumber(org.apache.pdfbox.cos.COSNumber) COSBase(org.apache.pdfbox.cos.COSBase)

Example 44 with COSNumber

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

the class SetFlatness method process.

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

Example 45 with COSNumber

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

the class SetLineDashPattern method process.

@Override
public void process(Operator operator, List<COSBase> arguments) throws MissingOperandException {
    if (arguments.size() < 2) {
        throw new MissingOperandException(operator, arguments);
    }
    COSBase base0 = arguments.get(0);
    if (!(base0 instanceof COSArray)) {
        return;
    }
    COSBase base1 = arguments.get(1);
    if (!(base1 instanceof COSNumber)) {
        return;
    }
    COSArray dashArray = (COSArray) base0;
    int dashPhase = ((COSNumber) base1).intValue();
    boolean allZero = true;
    for (COSBase base : dashArray) {
        if (base instanceof COSNumber) {
            COSNumber num = (COSNumber) base;
            if (Float.compare(num.floatValue(), 0) != 0) {
                allZero = false;
                break;
            }
        } else {
            LOG.warn("dash array has non number element " + base + ", ignored");
            dashArray = new COSArray();
            break;
        }
    }
    if (dashArray.size() > 0 && allZero) {
        LOG.warn("dash lengths all zero, ignored");
        dashArray = new COSArray();
    }
    context.setLineDashPattern(dashArray, dashPhase);
}
Also used : COSArray(org.apache.pdfbox.cos.COSArray) MissingOperandException(org.apache.pdfbox.contentstream.operator.MissingOperandException) COSNumber(org.apache.pdfbox.cos.COSNumber) COSBase(org.apache.pdfbox.cos.COSBase)

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